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.
We swapped `2024/anders` and `2024/straadt` by accident.
Sorry (tm Canada 🇨🇦) about that!
We **SINCERELY APOLOGIZE** to both **Anders Kaare Straadt**
and **Sebastian Macke** for the mix up!
We normalized some of the `.gitignore` files for some
of the 2024 winning entries.
Rebuilt 2024 tar files.
Updated `sitemap.xml`.
Ran `make update` to perform the above.
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
We indent FAQ 10.6.1, added in a previous commit, in the
same way we indent 3rd level FAQ numbers. Also adjusted
the vertical whitespace around the FAQ in `faq.md` to
be consistent with the other FAQ sections.
Updated sitemap.
Ran `make faq sitemap` to perform the above.
Added news for **2025-07-30** with the scheduled the date for the IOCCC
Awards Presentation and Source Code Reveal for IOCCC28 to be on 2025
August 02 11:00 (11AM) Pacific.
We add `make news` to the top level `Makefile.
Ran `make news timestamp` to perform the above.
We improve the text in the top level `social.html` page.
Added a number of missing files to the sitemap.
Changed `bin/gen-sitemap.sh` VERSION from "2.0.1 2025-04-28"
to "2.0.2 2025-07-30".
Ran `make social sitemap` to perform the above.
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.
We add `make clang-format` to the Makefile tree.
Add `important disclaimers about contest status` link to `status.html`.
Update `years.html` due to recent commit that fixed typo for abstract of 2011/akari.
Improve `template/README.md.year` for future IOCCC contents.
Ran `make quick_www` to perform the above.
We have a clever use of the sgit(1) to cleaver cleaver. :-)
Updated `sitemap.xml` and the `status.json` timestamp.
Ran 'make quick_www' to perform the above.
The `bin/gen-years.sh` has been updated to include the abstract of the
winning entry.
Changed `bin/gen-years.sh` VERSION from "2.1.1 2025-06-06"
ta "2.2.0 2025-07-10".
Ran `make gen_years timestamp` to perform the above.
Verified that all is up to date via a `make update`, with
the exception of the `sitemap.xml` which references the few
recent tarballs that were built during the previous commit.
FYI: The full `make update` took:
make update 1263.80s user 310.88s system 96% cpu 27:10.20 total
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.
The `display_as` field in an `.entry_json` file must match
the regex `^[a-z][0-9a-z]*$` now. This is needed to reduce
errors during the final round while converting a potential
submission to entry form.
Modify `1992/buzzard.2/.entry.json` and
`1993/rince/.entry.json` to change `display_as` field
to use lower case.
Correct `2012/omoikane/.entry.json` to correctly
reflect changes made by commit 2955e5d07e
and commit 2955e5d07e.
Change `bin/cvt-submission.sh` to verify that the `display_as`
matches the above regex.
Changed `bin/cvt-submission.sh` VERSION from "2.2.2 2025-06-30"
to "2.3.0 2025-07-02".
Rebuild all tarballs, both at the entry and the year level
due recent changes to `var.mk`, `1337.mk`, and `ioccc.css`.
Rebuild sitemap due to the changes above.
Ran `make update` to test and perform the above.
When `bin/cvt-submission.sh` needs to form a `try.sh` file,
it now uses `try.sh.judging`.
Changed `bin/cvt-submission.sh` VERSION from "2.2.1 2025-06-29"
to "2.2.2 2025-06-30".
Modified `bin/cvt-submission.sh` to use `chkentry(1)` on
submissions that are about to be converted into an entry,
by using `-P` to ignore permissions. We also ignore any
`.DS_Store` files found as they will not be committed to
the repo (because of the top level `.gitignore` file).
Changed `bin/cvt-submission.sh` VERSION from "2.2.0 2025-06-29"
to "2.2.1 2025-06-29".
The `bin/cvt-submission.sh` tool no longer will remove selected files
when -n` is used.
The `bin/cvt-submission.sh` tool will not object if a `.gitignore` file
(put there by an IOCCC Judge) is found.
Changed `bin/cvt-submission.sh` VERSION from "2.1.0 2025-06-16"
to "2.2.0 2025-06-29".
The `bin/new-dir.sh` tool use of `sed(1)` to update the year level
Makefile has been fixed.
Changed `bin/new-dir.sh` VERSION from "2.0.2 2025-05-29"
to "2.0.3 2025-06-29".
Tested/testing using potential final round submissions.
We fix/improve the new_entry rule in `template/Makefile.year`
that is used by `bin/new-dir.sh`.
Changed `bin/new-dir.sh` VERSION from "2.0.1 2025-05-18"
to "2.0.2 2025-05-29".
Tested/testing using potential final round submissions.
Added `template/entry/Makefile.judging`, a Makefile that is
similar to `next/Makefile.example` except that it is
more suitable for IOCCC judging, especially during
the final rounds of judging.
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.
The use of `cindent(1)` and `indent(1)` by the IOCCC Judges
during final round processing has been deprecated in favor
of the `clang-format(1)` tool.
Removed rules in `1337.mk` related to `cindent(1)` and `indent(1)`.
Added `make clang-format` rule to `1337.mk`.
Added `${CLANG_FORMAT}` Makefile variable to `var.mk`.
Created `.clang-format` to hold the IOCCC style, a style that
is somewhat similar to the Linux Kernel style.
We moved the building of an initial entry `README.md` file functionality
form `bin/cvt-submission.sh` to a new `bin/gen-readme.sh` tool.
Add `bin/gen-readme.sh` VERSION "2.0.0 2025-06-16".
Update `bin/cvt-submission.sh` to ignore while running `chkentry(1)`,
any submission top level `REDAME.md` file.
Removed unused template file `template/entry/README_md`.
Changed `bin/cvt-submission.sh` allowed minimum `chkentry(1)` VERSION from "1.1.5"
to "2.0.5".
Changed `bin/cvt-submission.sh` VERSION from "2.0.5 2025-05-18"
to "2.1.0 2025-06-16".
Update sitemap.
Tested the above via `make gen_top_html timestamp` on macOS.
Fixed heading title for "Support the IOCCC" block in `years.html`.
Changed `bin/gen-years.sh` VERSION from "2.1.0 2025-06-06"
to "2.1.1 2025-06-06".
Update sitemap.
Tested the above via `make gen_years timestamp` on macOS.
Changed "Support IOCCC" heading to "Support the IOCCC".
Use HTML blockquote instead of markdown quote for the "Support the IOCCC"
and "IOCCC on Social Media" HTML code blocks.
Added "Support the IOCCC" and "IOCCC on Social Media" to the
top level `index.html` page, the top level `news.html` page and
the top level `years.html` page.
Changed `bin/gen-years.sh` VERSION from "2.0.0 2025-03-13"
to "2.1.0 2025-06-06".
Update sitemap.
Tested the above via `make gen_top_html gen_years timestamp` on macOS.
Added FAQ 5.12 regarding how to compile entries that use ncurses if we
only have the old classic curses.
Clarified how FAQ 5.2 relates to FAQ 0.2.
Update sitemap.
Tested the above via `make quick_www timestamp` on macOS.
Successfully tested `bin/cvt-submission.sh` on a new entry in a new
year that was generated from a submission entry.number directory via
`sbin/post-collect.sh` from the submit tools.
Changed `bin/cvt-submission.sh` prompts to use "[Y,n]" and to default to yes.
The `bin/cvt-submission.sh` processes and appends YYYY/dir to `.allyear`.
Improved 215 error message and exit code from `bin/subst.entry-navbar.awk`.
Changed `bin/cvt-submission.sh` VERSION from "2.0.3 2025-05-18"
to "2.0.4 2025-05-18".
Changed `bin/output-index-author.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-05-18".
Changed `bin/output-index-inventory.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-05-18".
Changed `bin/output-index-inventory.sh` VERSION from "2.0.1 2025-05-17"
to "2.0.2 2025-05-18".
Changed `bin/subst.entry-index.sh` VERSION from "2.0.1 2025-05-17"
to "2.0.2 2025-05-18".
Changed `bin/subst.entry-navbar.awk` VERSION from "1.3.1 2025-05-17"
to "1.3.2 2025-05-18".
Update sitemap.
Tested the above via `make update` on macOS.
Fixed a bug that was introduced into `bin/subst.entry-index.sh`
where the value `$HTML_SED` was set too early. Shell functions
variables are evaluated when they are executed, not when they
are first parsed. So exported variables used by a shell function
need to be set only before the shell function is executed.
Checkpoint `bin/cvt-submission.sh` as part of our testing.
Set file modes of 0444 for when `.auth.json` is formed from `.auth.json.xz`.
The awk scripts under bin put their name (basename) into error
messages to make it easier to debug any error they might raise.
Changed `bin/cvt-submission.sh` VERSION from "2.0.1 2025-05-01"
to "2.0.2 2025-05-17".
Changed `bin/filelist.entry.json.awk` VERSION from "1.0 2024-02-12"
to "1.0.1 2025-05-17".
Changed `bin/manifest.csv.entry.awk` VERSION from "1.0 2024-07-14"
to "1.0.1 2025-05-17".
Changed `bin/manifest.entry.json.awk` VERSION from "1.2.1 2024-11-16"
to "1.2.2 2025-05-17".
Changed `bin/subst.entry-index.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-05-17".
Changed `bin/subst.entry-navbar.awk` VERSION from "1.3 2024-08-02"
to "1.3.1 2025-05-17".
Changed `bin/subst.year-navbar.awk` VERSION from "1.2 2024-04-04"
to "1.2.1 2025-05-17".
Update sitemap.
Tested the above via `make update` on macOS.
The genpath rule uses `${RM}` to remove files, and touches `.tmp.genpath` after removing it.
Updated "_YYYY/Makefile_" files, and the `template/Makefile.year` template.
Updated year level tarballs to incorporate the modified "_YYYY/Makefile_" file.
Updated sitemap.
Tested the above via `make update` on macOS.
The tarballs were updated.
Removed reference to the previous mod from `thanks-for-help.md`.
Updated the `2012/omoikane/index.html` page.
Updated sitemap.
The json wrapper tools, `bin/jfmt-wrapper.sh`, `bin/jprint-wrapper.sh`
and `bin/jval-wrapper.sh` have been updated as follows:
The `-Q` option now does a quick test, ignores args, and exits.
With `-Q`, the required args are ignored and are not required.
The quick testing of `JSONPath.sh` via `-Q` is fixed.
Leading commends about the tools have improved.
A few typos have been fixed.
The `-v 3` variable printing is performed just before any `-N` test.
Changed `bin/jfmt-wrapper.sh` VERSION from "2.0.1 2025-04-21"
to "2.0.2 2025-05-04".
Changed `bin/jprint-wrapper.sh` VERSION from "2.0.1 2025-04-21"
to "2.0.2 2025-05-04".
Changed `bin/jval-wrapper.sh` VERSION from "2.0.1 2025-04-21"
to "2.0.2 2025-05-04".
Updated sitemap.
Tested the above via `make update` on macOS.
Changed `markdown.md` VERSION from "28.1 2025-02-02"
to "28.2 2025-04-28".
Updated sitemap.
Tested the above via `make www gen_status gen_sitemap timestamp` on macOS.
Fixed vimrc typo relating to noexpandtab in `markdown.md`.
Added missing top level and 2nd level markdown and HTML files
to the sitemap.
Changed `bin/gen-sitemap.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-04-28".
Updated sitemap.
Tested the above via `make www gen_status gen_sitemap timestamp` on macOS.
We released [mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry) **version 2.4.6 2025-04-26**.
While you are **NOT** required to use this release in order to submit to **IOCCC28**,
we do **RECOMMEND** that you **install and use** it, because among other things, it provides:
* Enhanced the scanning process of topdir, excluding ignored files and directories from the count against the maximum allowed limit.
* Clarified the purpose of a submission title to emphasize that it should not contain names.
* Default handles may now contain UPPERCASE letters.
The `JSONPath.sh` has been updated (and bug fixed).
The `-A` option is gone and `-4` has been added.
See: https://github.com/lcn2/JSONPath.sh
Changed `bin/jfmt-wrapper.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-04-21".
Changed `bin/jprint-wrapper.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-04-21".
Changed `bin/jval-wrapper.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-04-21".
Tested the above via `make www gen_status gen_sitemap timestamp` on macOS.
The **IOCCC28** **OPEN** period has reached the half-way point.
This is a _gentle suggestion_ to not wait until the last minute to write, test
and upload your submission.
The **IOCCC28** is [open for registration](https://www.ioccc.org/next/register.html).
Those who have registered have until **2025-06-05 04:03:02.010099 UTC** to
[upload their submissions](https://www.ioccc.org/next/submit.html).
See "[how enter the IOCCC](https://www.ioccc.org/quick-start.html#enter)" for more information.
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.
Updated `bugs.html` to reflect the fix of all known bugs in `2000/dlowe`.
Added thank you to John Dalbec in `thanks-for-help.md`.
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.
Tested the above via `make www gen_status gen_sitemap timestamp` on macOS.
Search engines become confused when they discover pages such
as under `inc/head.default.html` that are **NOT** real pages,
but rather quasi-templates that are used by bin tools in the
generation of HTML content. So we "_Disallow_" search engine
access to URLs under `inc/` except for the two "safe" pages.
Updated `sitemap.xml` as per recent modifications.
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.