fix guidelines, remove guideline status, update sitemap

This is a checkpoint correction for issue #244 ("Restore guidelines")
which in turn was a correction for issue #243 ("Fixes and minor
improvements in rules").

Remove code that put the contest status at the top
of the guidelines page.

Change `bin/gen-status.sh` VERSION to "2.1.0 2025-11-29",

Fix `next/guidelines.md` so that `next/guidelines.html`
is rendered correctly.

Update sitemap and status (due to recent news mod).

Ran `make quick_www` to perform the above

TODO: Complete the correction for issue #244 ("Restore guidelines").

TODO: Continue to revise and improve the IOCCC guidelines as needed.

TODO: Fix typos/nits in the `next/guidelines.md` if needed.

TODO: Fix typos/nits in the `next/rules.md` if needed.
This commit is contained in:
Landon Curt Noll committed 2025-11-29 16:57:37 -08:00
1 parent 8f77aebe3c
commit c5bd5b33a4
10 files changed
+24 -300

No files matched your search

+3 -154
View File
@@ -104,7 +104,7 @@ export LC_ALL="C"
# set variables referenced in the usage message # set variables referenced in the usage message
# #
export VERSION="2.0.1 2025-08-23" export VERSION="2.1.0 2025-11-29"
NAME=$(basename "$0") NAME=$(basename "$0")
export NAME export NAME
export V_FLAG=0 export V_FLAG=0
@@ -951,28 +951,6 @@ fi
export RULES_HTML="$NEXT_DIR/rules.html" export RULES_HTML="$NEXT_DIR/rules.html"
# determine the guidelines.md markdown file
#
export GUIDELINES_MD="$NEXT_DIR/guidelines.md"
if [[ ! -e $GUIDELINES_MD ]]; then
echo "$0: ERROR: guidelines.md does not exist: $GUIDELINES_MD" 1>&2
exit 1
fi
if [[ ! -f $GUIDELINES_MD ]]; then
echo "$0: ERROR: guidelines.md is not a regular file: $GUIDELINES_MD" 1>&2
exit 1
fi
if [[ ! -r $GUIDELINES_MD ]]; then
echo "$0: ERROR: guidelines.md is not an readable file: $GUIDELINES_MD" 1>&2
exit 1
fi
if [[ ! -s $GUIDELINES_MD ]]; then
echo "$0: ERROR: guidelines.md is not an non-empty readable file: $GUIDELINES_MD" 1>&2
exit 1
fi
export GUIDELINES_HTML="$NEXT_DIR/guidelines.html"
# determine the rules hdr file # determine the rules hdr file
# #
export RULES_HDR="$INC_PATH/rules.$CONTEST_STATUS.hdr" export RULES_HDR="$INC_PATH/rules.$CONTEST_STATUS.hdr"
@@ -994,27 +972,6 @@ if [[ ! -s $RULES_HDR ]]; then
fi fi
# determine the guidelines hdr file
#
export GUIDELINES_HDR="$INC_PATH/guidelines.$CONTEST_STATUS.hdr"
if [[ ! -e $GUIDELINES_HDR ]]; then
echo "$0: ERROR: guidelines hdr file does not exist: $GUIDELINES_HDR" 1>&2
exit 1
fi
if [[ ! -f $GUIDELINES_HDR ]]; then
echo "$0: ERROR: guidelines hdr file is not a regular file: $GUIDELINES_HDR" 1>&2
exit 1
fi
if [[ ! -r $GUIDELINES_HDR ]]; then
echo "$0: ERROR: guidelines hdr file is not an readable file: $GUIDELINES_HDR" 1>&2
exit 1
fi
if [[ ! -s $GUIDELINES_HDR ]]; then
echo "$0: ERROR: guidelines hdr file is not an non-empty readable file: $GUIDELINES_HDR" 1>&2
exit 1
fi
# -N stops early before any processing is performed # -N stops early before any processing is performed
# #
if [[ -n $DO_NOT_PROCESS ]]; then if [[ -n $DO_NOT_PROCESS ]]; then
@@ -1055,7 +1012,7 @@ if [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: temporary rules.md file: $TMP_RULES_MD" 1>&2 echo "$0: debug[3]: temporary rules.md file: $TMP_RULES_MD" 1>&2
fi fi
if [[ -z $NOOP ]]; then if [[ -z $NOOP ]]; then
trap 'rm -f $TMP_STATUS_JSON $TMP_RULES_MD $TMP_GUIDELINES_MD; exit' 0 1 2 3 15 trap 'rm -f $TMP_STATUS_JSON $TMP_RULES_MD; exit' 0 1 2 3 15
rm -f "$TMP_RULES_MD" rm -f "$TMP_RULES_MD"
if [[ -e $TMP_RULES_MD ]]; then if [[ -e $TMP_RULES_MD ]]; then
echo "$0: ERROR: cannot remove temporary rules.md file: $TMP_RULES_MD" 1>&2 echo "$0: ERROR: cannot remove temporary rules.md file: $TMP_RULES_MD" 1>&2
@@ -1071,29 +1028,6 @@ elif [[ $V_FLAG -ge 3 ]]; then
fi fi
# create a temporary guidelines.md file
#
export TMP_GUIDELINES_MD=".tmp.$NAME.GUIDELINES_MD.$$.tmp"
if [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2
fi
if [[ -z $NOOP ]]; then
trap 'rm -f $TMP_STATUS_JSON $TMP_RULES_MD $TMP_GUIDELINES_MD; exit' 0 1 2 3 15
rm -f "$TMP_GUIDELINES_MD"
if [[ -e $TMP_GUIDELINES_MD ]]; then
echo "$0: ERROR: cannot remove temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2
exit 12
fi
:> "$TMP_GUIDELINES_MD"
if [[ ! -e $TMP_GUIDELINES_MD ]]; then
echo "$0: ERROR: cannot create temporary guidelines.md file: $TMP_GUIDELINES_MD" 1>&2
exit 13
fi
elif [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: because of -n, temporary guidelines.md file is not used: $TMP_GUIDELINES_MD" 1>&2
fi
# generate the temporary status.json file # generate the temporary status.json file
# #
# In this stage, we use the date of the actual status.json file. # In this stage, we use the date of the actual status.json file.
@@ -1297,95 +1231,10 @@ elif [[ $V_FLAG -ge 3 ]]; then
fi fi
# update guidelines.md
#
if [[ -z $NOOP ]]; then
# form a new guidelines.md
#
cat "$GUIDELINES_HDR" > "$TMP_GUIDELINES_MD"
status="$?"
if [[ $status -ne 0 ]]; then
echo "$0: ERROR: failed to cat $GUIDELINES_HDR > $TMP_GUIDELINES_MD, error code: $status" 1>&2
exit 29
fi
sed -e '1,/^<!-- This is the last line modified by the tool: bin\/gen-status.sh -->/d' \
"$GUIDELINES_MD" >> "$TMP_GUIDELINES_MD"
status="$?"
if [[ $status -ne 0 ]]; then
echo "$0: ERROR: failed to sed -e '1,/<!--- ... -->/d' $GUIDELINES_MD >> $TMP_GUIDELINES_MD failed," \
"error code: $status" 1>&2
exit 30
fi
# update guidelines.md if different or if guidelines.html is missing
#
if [[ -s "$GUIDELINES_HTML" ]] && cmp -s "$TMP_GUIDELINES_MD" "$GUIDELINES_MD"; then
# case: guidelines.md did not change
#
if [[ $V_FLAG -ge 5 ]]; then
echo "$0: debug[5]: guidelines.md file did not change: $GUIDELINES_MD" 1>&2
fi
else
# case: guidelines.md changed, update the file
#
if [[ $V_FLAG -ge 5 ]]; then
echo "$0: debug[5]: mv -f -- $TMP_GUIDELINES_MD $GUIDELINES_MD" 1>&2
fi
if [[ $V_FLAG -ge 3 ]]; then
mv -f -v -- "$TMP_GUIDELINES_MD" "$GUIDELINES_MD"
status="$?"
else
mv -f -- "$TMP_GUIDELINES_MD" "$GUIDELINES_MD"
status="$?"
fi
if [[ $status -ne 0 ]]; then
echo "$0: ERROR: mv -f -- $TMP_GUIDELINES_MD $GUIDELINES_MD filed, error code: $status" 1>&2
elif [[ $V_FLAG -ge 1 ]]; then
echo "$0: debug[1]: built replaced guidelines.md: $GUIDELINES_MD" 1>&2
fi
if [[ ! -s $GUIDELINES_MD ]]; then
echo "$0: ERROR: not a non-empty guidelines.md file: $GUIDELINES_MD" 1>&2
exit 31
fi
# use the md2html.sh tool to form the guidelines.html file, unless -n
#
# We force use of "-m next/guidelines.md" because we want both "make gen_status"
# and "make gen_top_html" to produce the same file content.
#
if [[ $V_FLAG -ge 1 ]]; then
echo "$0: debug[1]: about to run: $MD2HTML_SH ${TOOL_OPTION[*]}" \
"-m next/guidelines.md -U $SITE_URL/$GUIDELINES_HTML --" \
"next/guidelines.md $GUIDELINES_HTML" 1>&2
fi
"$MD2HTML_SH" "${TOOL_OPTION[@]}" \
-m next/guidelines.md -U "$SITE_URL/$GUIDELINES_HTML" -- \
next/guidelines.md "$GUIDELINES_HTML"
status="$?"
if [[ $status -ne 0 ]]; then
echo "$0: ERROR: md2html.sh: $MD2HTML_SH ${TOOL_OPTION[*]}" \
"-m next/guidelines.md -U $SITE_URL/$GUIDELINES_HTML --" \
"next/guidelines.md $GUIDELINES_HTML" \
"failed, error: $status" 1>&2
exit 32
elif [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: guidelines.md now up to date: $GUIDELINES_MD" 1>&2
fi
fi
elif [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: because of -n, guidelines.md was not updated: $GUIDELINES_MD" 1>&2
fi
# file cleanup # file cleanup
# #
if [[ -z $NOOP ]]; then if [[ -z $NOOP ]]; then
rm -f -- "$TMP_STATUS_JSON" "$TMP_GUIDELINES_MD" "$TMP_RULES_MD" rm -f -- "$TMP_STATUS_JSON" "$TMP_RULES_MD"
elif [[ $V_FLAG -ge 3 ]]; then elif [[ $V_FLAG -ge 3 ]]; then
echo "$0: debug[3]: because of -n, disabled: rm -f -- $TMP_STATUS_JSON" 1>&2 echo "$0: debug[3]: because of -n, disabled: rm -f -- $TMP_STATUS_JSON" 1>&2
fi fi
-28
View File
@@ -1,28 +0,0 @@
<!-- START: this line starts content from: inc/guidelines.closed.hdr -->
# The IOCCC is closed
The IOCCC is **NOT** accepting new submissions at this time. See the
[IOCCC winning entries page](../years.html) for the entries that have won the
IOCCC in the past.
These guidelines are a **TENTATIVE proposal** for the next IOCCC
and are **likely be to be updated** before the next IOCCC.
See our
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
as well as our
FAQ on "[about asking questions](../faq.html#question)"
about these guidelines. You might also find the FAQ in general useful, especially the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
Watch both [the IOCCC status page](../status.html) and the
[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about
future IOCCC openings.
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon
app from time to time to view IOCCC mastodon updates.
<!-- END: the next line ends content from: inc/guidelines.closed.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
-23
View File
@@ -1,23 +0,0 @@
<!-- START: this line starts content from: inc/guidelines.judging.hdr -->
# The guidelines for the IOCCC that just closed
These guidelines are for the current IOCCC that is no longer open for new submissions.
See the [IOCCC news](../news.html) and well as the
[IOCCC Mastodon](https://fosstodon.org/@ioccc) feed for updates
on the IOCCC judging process as well as for the announcement
of [who won the IOCCC](../years.html).
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon
app from time to time to view IOCCC mastodon updates.
# The IOCCC is closed to new submissions
The [IOCCC judges](../judges.html) are in the process of judging the submissions they received
while the IOCCC was open.
<!-- END: the next line ends content from: inc/guidelines.judging.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
-35
View File
@@ -1,35 +0,0 @@
<!-- START: this line starts content from: inc/guidelines.open.hdr -->
# Official IOCCC guidelines
These guidelines are **OFFICIAL**.
Unless some significant problem turns up (such as a need to delay
in when the IOCCC will close, or some major bug is discovered) they
will remain **OFFICIAL** for this IOCCC.
See our
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
as well as our
FAQ on "[about asking questions](../faq.html#question)"
about these guidelines. You might also find the FAQ in general useful, especially the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
**SUGGESTION**: Watch both the [IOCCC news](../news.html) and the
[IOCCC Mastodon](https://fosstodon.org/@ioccc) feed for the latest news
about any _mentions_ changes.
**HINT to mastodon users**: You may wish to refresh the [@IOCCC
mastodon feed](https://fosstodon.org/@ioccc) page and/or mastodon
app from time to time to view IOCCC mastodon updates.
# The IOCCC open for submissions
See "[FAQ - How may I enter the IOCCC](https://www.ioccc.org/quick-start.html#enter)"
for information on how to register for the IOCCC, how to create a proper
bzip2 compressed tarball of your submission, and how to upload your
bzip2 compressed tarball to the IOCCC submit server.
<!-- END: the next line ends content from: inc/guidelines.open.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
-31
View File
@@ -1,31 +0,0 @@
<!-- START: this line starts content from: inc/guidelines.pending.hdr -->
# WARNING: These guidelines are TENTATIVE
One might think of them as a **beta** release for the IOCCC
that is about to open.
**IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html)
are subject to change by the [IOCCC judges](../judges.html) at any time.
See both the [IOCCC news](../news.html) and the [IOCCC
Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the
[IOCCC judges](../judges.html) _mention_ changes there.
See our
FAQ on "[rules, guidelines, tools feedback](../faq.html#feedback)"
as well as our
FAQ on "[about asking questions](../faq.html#question)"
about these guidelines. You might also find the FAQ in general useful, especially the
FAQ on "[how to enter the IOCCC](../quick-start.html#enter)".
# The IOCCC is pending
While the IOCCC is not open yet, there is a tentative opening date for the next IOCCC.
Comments and suggestions on these preliminary guidelines are welcome. See the
[FAQ](../faq.html#feedback) for how to suggest, correct or provide feedback
about these guidelines.
<!-- END: the next line ends content from: inc/guidelines.pending.hdr -->
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
-7
View File
@@ -1,7 +0,0 @@
<!-- START: this line starts content from: inc/guidelines.year.hdr -->
# WARNING: These guidelines are OUT OF DATE
These guidelines are provided as a historic archive, only.
<!-- END: the next line ends content from: inc/guidelines.year.hdr -->
-1
View File
@@ -1,4 +1,3 @@
# 29th International Obfuscated C Code Contest Official Guidelines # 29th International Obfuscated C Code Contest Official Guidelines
<p class="leftbar"> <p class="leftbar">
+19 -19
View File
@@ -14954,7 +14954,7 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/2024/index.html</loc> <loc>https://www.ioccc.org/2024/index.html</loc>
<lastmod>2025-11-20T06:14:33+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/2024/kramer/2024_kramer.tar.bz2</loc> <loc>https://www.ioccc.org/2024/kramer/2024_kramer.tar.bz2</loc>
@@ -15374,7 +15374,7 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/2024/README.md</loc> <loc>https://www.ioccc.org/2024/README.md</loc>
<lastmod>2025-11-20T04:29:28+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/2024/rules.html</loc> <loc>https://www.ioccc.org/2024/rules.html</loc>
@@ -16586,7 +16586,7 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/bin/gen-status.sh</loc> <loc>https://www.ioccc.org/bin/gen-status.sh</loc>
<lastmod>2025-08-23T23:37:50+00:00</lastmod> <lastmod>2025-11-30T00:32:11+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/bin/gen-top-html.sh</loc> <loc>https://www.ioccc.org/bin/gen-top-html.sh</loc>
@@ -16758,11 +16758,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/faq.html</loc> <loc>https://www.ioccc.org/faq.html</loc>
<lastmod>2025-11-29T08:08:30+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/faq.md</loc> <loc>https://www.ioccc.org/faq.md</loc>
<lastmod>2025-11-29T08:08:21+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/inc/index.html</loc> <loc>https://www.ioccc.org/inc/index.html</loc>
@@ -16810,27 +16810,27 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/markdown.html</loc> <loc>https://www.ioccc.org/markdown.html</loc>
<lastmod>2025-11-29T17:10:20+00:00</lastmod> <lastmod>2025-11-29T17:17:55+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/markdown.md</loc> <loc>https://www.ioccc.org/markdown.md</loc>
<lastmod>2025-11-29T17:09:30+00:00</lastmod> <lastmod>2025-11-29T17:17:55+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/news.html</loc> <loc>https://www.ioccc.org/news.html</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/news.md</loc> <loc>https://www.ioccc.org/news.md</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/guidelines.html</loc> <loc>https://www.ioccc.org/next/guidelines.html</loc>
<lastmod>2025-11-29T17:10:42+00:00</lastmod> <lastmod>2025-11-29T23:08:54+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/guidelines.md</loc> <loc>https://www.ioccc.org/next/guidelines.md</loc>
<lastmod>2025-11-29T17:09:30+00:00</lastmod> <lastmod>2025-11-29T23:23:33+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/index.html</loc> <loc>https://www.ioccc.org/next/index.html</loc>
@@ -16870,19 +16870,19 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/rules.html</loc> <loc>https://www.ioccc.org/next/rules.html</loc>
<lastmod>2025-11-29T07:45:34+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/rules.md</loc> <loc>https://www.ioccc.org/next/rules.md</loc>
<lastmod>2025-11-29T07:45:14+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/submit.html</loc> <loc>https://www.ioccc.org/next/submit.html</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/submit.md</loc> <loc>https://www.ioccc.org/next/submit.md</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/next/try.alt.sh</loc> <loc>https://www.ioccc.org/next/try.alt.sh</loc>
@@ -16902,11 +16902,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/quick-start.html</loc> <loc>https://www.ioccc.org/quick-start.html</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/quick-start.md</loc> <loc>https://www.ioccc.org/quick-start.md</loc>
<lastmod>2025-11-24T13:29:41+00:00</lastmod> <lastmod>2025-11-29T22:23:16+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/README.html</loc> <loc>https://www.ioccc.org/README.html</loc>
@@ -16938,11 +16938,11 @@
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.html</loc> <loc>https://www.ioccc.org/status.html</loc>
<lastmod>2025-11-29T08:12:55+00:00</lastmod> <lastmod>2025-11-30T00:36:15+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.json</loc> <loc>https://www.ioccc.org/status.json</loc>
<lastmod>2025-11-26T06:28:00+00:00</lastmod> <lastmod>2025-11-30T00:36:14+00:00</lastmod>
</url> </url>
<url> <url>
<loc>https://www.ioccc.org/status.md</loc> <loc>https://www.ioccc.org/status.md</loc>
+1 -1
View File
@@ -461,7 +461,7 @@
&quot;no_comment&quot; : &quot;mandatory comment: because comments were removed from the original JSON spec&quot;, &quot;no_comment&quot; : &quot;mandatory comment: because comments were removed from the original JSON spec&quot;,
&quot;IOCCC_status_version&quot; : &quot;1.0 2024-03-09&quot;, &quot;IOCCC_status_version&quot; : &quot;1.0 2024-03-09&quot;,
&quot;contest_status&quot; : &quot;closed&quot;, &quot;contest_status&quot; : &quot;closed&quot;,
&quot;news_update&quot; : &quot;2025-11-24T13:29:41+00:00&quot;, &quot;news_update&quot; : &quot;2025-11-29T22:23:16+00:00&quot;,
&quot;status_update&quot; : &quot;2025-08-01T19:38:14+00:00&quot; &quot;status_update&quot; : &quot;2025-08-01T19:38:14+00:00&quot;
}</code></pre> }</code></pre>
+1 -1
View File
@@ -2,6 +2,6 @@
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec", "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"IOCCC_status_version" : "1.0 2024-03-09", "IOCCC_status_version" : "1.0 2024-03-09",
"contest_status" : "closed", "contest_status" : "closed",
"news_update" : "2025-11-24T13:29:41+00:00", "news_update" : "2025-11-29T22:23:16+00:00",
"status_update" : "2025-08-01T19:38:14+00:00" "status_update" : "2025-08-01T19:38:14+00:00"
} }