From ee2f499839c40b3fbc336a43f8c3c7ff970f6314 Mon Sep 17 00:00:00 2001
From: Landon Curt Noll
Jump to: top
mkiocccentry in simple terms?IMPORTANT NOTE: the tools that require other tools, mkiocccentry(1) and
txzchk(1), will, as of version 2.0.2 2025-03-11, search under $PATH. If
you have an earlier version and you have not installed the tools and run the
@@ -934,7 +934,7 @@ rounds; we look at the author name only if an entry wins. See the
mkiocccentry(1), as it requires it to not be of size 0, though if you only
include whitespace you would still be violating
-Rule 17 Packaging).Jump to: top
See the FAQ on “Rule 17” and -Rule 17 Packaging +Rule 17 - Packaging itself.
Do remember that if your submission requires different filenames, then you
MUST make a COPY of them in your Makefile. See also
-Rule 5 Purity.
Jump to: top
txzchk(1) tests; only your submission
tarball needs to pass these tests. However see below if you do do this.
-Please pay careful attention to Rule 17 Packaging and in +
Please pay careful attention to Rule 17 - Packaging and in particular the part about the maximum number of files per submission, which not only discusses the maximum number of files but also specific rules you must follow if you do include a tarball. Not following these points puts you at great risk -of violating Rule 17 Packaging!
+of violating Rule 17 - Packaging!Also, remember what the guidelines say:
IMPORTANT REMINDER: make SURE your tarball does NOT reveal who you are! @@ -1155,7 +1155,7 @@ ultimate author of the code you submit.
you used as well as how you used them to help write your submission.Jump to: top
-Q 1.7: What are details behind Rule 17?
+Q 1.7: What are details behind Rule 17 - Packaging?
TL;DR Rule 17 - Use
mkiocccentry(1)This is a COMPLEX rule. Violating this rule WILL CAUSE YOUR SUBMISSION TO @@ -1174,7 +1174,7 @@ contains IMPORTANT tools and libraries such as:
chksubmit(1)(which usesjparse(3)and is a wrapper tochkentry(1))The above mentioned tools will help you verify that your submission -conforms to Rule 17 Packaging. Each of these tool has a
-h+conforms to Rule 17 - Packaging. Each of these tool has a-hoption that provides command line help. For additional details of each tool, see its man page, and in some cases, the IOCCC guidelines.The maximum number of extra files is 31. See the @@ -1224,7 +1224,7 @@ for help.
The
+Rule 17 - Packaging!remarks.mdMUST be a non-empty file in markdown format (mkiocccentry(1)only checks the file size but if you do not have any text in it you still risk violating this rule). See also -Rule 17 Packaging +Rule 17 - Packaging and our FAQ on “remarks.md”, our @@ -1318,16 +1318,16 @@ permissions andmkiocccentry(1)does this for you. In particular: d-r-xr-xr-x(i.e.0555); and all other files MUST be-r--r--r--(i.e.0444). If any file or directory does not have the correct permissions, your submission WILL be rejected for violating -Rule 17 Packaging!After
mkiocccentry(1)creates the directories and copies the files with these modes, it also verifies them after the fact and if they are not correct it is an error.If you do need different permissions, then see the FAQ on “file permissions”. Also keep in mind -Rule 4 Files, -Rule 5 Purity, +Rule 4 - Files, +Rule 5 - Purity, and -Rule 16 Anonymous.
+Rule 16 - Anonymous.The
will runtxzchk(1)tool will also verify file/directory permissions (and many other things) for you, and so willchksubmit(1)(along with other checks on files and directories in your submission directory, including the two required JSON files, @@ -1340,18 +1340,18 @@ page.fnamchk(1)as part of its algorithm. If you usemkiocccentry(1)there should be no problem but if you were to package things manually it is possible there could be a problem and this poses a big risk of violating -Rule 4 Files +Rule 4 - Files or -Rule 17 Packaging. +Rule 17 - Packaging.The
fnamchk(1), whichtxzchk(1)executes, will verify that the filename is correct. But if you do package your tarball manually, and you have a mismatch in what is in the tarball and the name,txzchk(1)will flag the discrepancy as an error and exit with non-zero.These checks MUST PASS. If they do not you stand a significant chance of having your submission rejected for violating -Rule 4 Files +Rule 4 - Files or -Rule 17 Packaging.
+Rule 17 - Packaging.@@ -1381,9 +1381,9 @@ TheMaximum number of files per submission
mkiocccentry(1)tool uses the v7 format. For instance you mighttar --format=v7 -cJf foo.txz directory
IMPORTANT: where -Rule 4 Files, +Rule 4 - Files, and -Rule 17 Packaging. +Rule 17 - Packaging. and the tools from the latest release of the mkiocccentry repo conflict, the IOCCC judges will use their best judgment which @@ -1418,9 +1418,9 @@ page, for help here and also read our FAQ on “mkiocccentry repo bugs”.
At the risk of stating the obvious: submissions that violate -Rule 4 Files, +Rule 4 - Files, or -Rule 17 Packaging +Rule 17 - Packaging WILL BE REJECTED, so BE SURE to use the latest release of the mkiocccentry repo, to form and test your submission’s xz compressed tarball. Do NOT assume you have the most @@ -1683,7 +1683,7 @@ of the same theme.
Jump to: top
-Q 2.4: How did an entry that breaks the size rule 2 win the IOCCC?
+Q 2.4: How did an entry win the IOCCC that breaks Rule 2 - Size?
As entries have been fixed it is entirely possible that some of the entries no @@ -1900,9 +1900,9 @@ two JSON files,
+Rule 17 - Packaging!)..auth.jsonand.info.jsonas well as t.info.jsonmanifest. (Okay there is an option to skip files but this is for the judges ONLY; use of this option to validate your submission puts you at a great risk of violating -Rule 4 Files, +Rule 4 - Files, or -Rule 17 Packaging!).As an example, if your submission directory is
@@ -1922,9 +1922,9 @@ FAQ on “.auth.json” and the FAQ on “.info.json” as well as -Rule 4 Files, +Rule 4 - Files, and -Rule 17 Packaging +Rule 17 - Packaging for more information.00000000-0000-4000-0000-000000000000-3/then you should run the following command:NOTE: the
chksubmit(1)tool invokeschkentry(1)but as a contestant you do not need to worry about those details. One should usechksubmit(1)instead @@ -2015,12 +2015,12 @@ to be valid. If this is not the case your submission WILL BE reThe IOCCC contestant ID used as a username in the form of in the form of a UUID and submission number; see the Rules for more details on this, and in particular -Rule 17 Packaging. +Rule 17 - Packaging.NOTE: if the contest ID is NOT in this format then
+Rule 17 - Packaging.fnamchkwill report it as an error and your submission WILL BE rejected for violating -Rule 17 Packaging.in the mkiocccentry repo). If this is not the case you stand a great risk of having your submission rejected for violating -Rule 17 Packaging. +Rule 17 - Packaging.
tarball(double quoted string)
- The xz compressed tarball filename.
@@ -2028,10 +2028,10 @@ violatingIMPORTANT: this MUST match the actual tarball’s filename in order for this to be valid. If there is a mismatch you stand a great risk of having your submission rejected for violating -Rule 17 Packaging! +Rule 17 - Packaging! Moreover, it is possible that
txzchkwill report a problem throughfnamchk(1)which also puts you at great risk of violating -Rule 17 Packaging. The +Rule 17 - Packaging. Thetxzchk(1)tool will use the output offnamchkto obtain the correct directory name in the tarball; iffnamchkfails to validate your filename, or if you have the wrong directory name in the @@ -2046,7 +2046,7 @@ tarball, this will be flaggd.
author_count(number)
- How many authors this submission has.
@@ -2119,7 +2119,7 @@ the range of 1 THROUGHMAX_AFFILIATION_LEN(see in the mkiocccentry repo). If this is not the case you stand a great risk of having your submission rejected for violating -Rule 17 Packaging. +Rule 17 - Packaging.NOTE: an affiliation does NOT have any affect on whether you will win or not.
past_winning_author(boolean)@@ -2204,9 +2204,9 @@ will use it on the submission directory as part of the judging process. is reported invalid by
chksubmit(1), or if your submission directory is reported invalid bychksubmit(1), your submission will almost certainly be rejected for violating the Rules and in particular -Rule 4 Files, +Rule 4 - Files, and -Rule 17 Packaging. +Rule 17 - Packaging.An obvious example where
@@ -2337,7 +2337,7 @@ this is not the case your submission WILL BE rejected!chksubmit(1)would fail to validate.auth.jsonis if there is a mismatch of type in the JSON file with what is expected, for instance, if in.auth.jsontheno_commentthat we chose to not comment on is @@ -2215,9 +2215,9 @@ out of range (see above for list). Two more examples would be if a field is missing or if an unknown filed is in the file. In these cases (and any others that must be established as valid bychksubmit(1)) your submission would be rejected for violating -Rule 4 Files, +Rule 4 - Files, and -Rule 17 Packaging +Rule 17 - Packaging and in particular becausechksubmit(1)would not validate the.auth.jsonfile (and maybe other things too).The IOCCC contestant ID used as a username in the form of in the form of a UUID and submission number; see the rules for more details on this, and in particular -Rule 17 Packaging. +Rule 17 - Packaging.+Rule 17 - Packaging.
submit_slot(number)@@ -2349,7 +2349,7 @@ on this, and in particular in the mkiocccentry repo). If this is not the case you stand a great risk of having your submission rejected for violating -Rule 17 Packaging.
+Rule 17 - Packaging!
title(double quoted string)
- A short name (length >= 1 THROUGH
MAX_TITLE_LEN, defined in @@ -2359,7 +2359,7 @@ matches the regexp[a-z0-9][a-z0-9_+-]*.IMPORTANT: if this is NOT the case you stand a great risk of having your submission rejected for violating -Rule 17 Packaging!
abstract(double quoted string)
- A one line summary of your submission, with a length of 1 THROUGH @@ -2370,7 +2370,7 @@ in the mkiocccentry repoThe
+Rule 17 - Packaging!abstractmay not contain a;(semicolon), nor&(ampersand), nor,(comma).IMPORTANT: if your abstract is 0 in length or > the maximum abstract length you stand a great risk of having your submission rejected for violating -Rule 17 Packaging!
calculated size is NOT violated but this is
tarball(double quoted string)
- The xz compressed tarball filename.
@@ -2378,10 +2378,10 @@ stand a great risk of having your submission rejected for violatingIMPORTANT: this MUST match the actual tarball’s filename in order for this to be valid. If there is a mismatch you stand a great risk of having your submission rejected for violating -Rule 17 Packaging! +Rule 17 - Packaging! Moreover, it is possible that
txzchkwill report a problem throughfnamchk(1)which also puts you at great risk of violating -Rule 17 Packaging. +Rule 17 - Packaging. Thetxzchk(1)tool will use the output offnamchkto obtain the correct directory name in the tarball; iffnamchkfails to validate your filename, or if you have the wrong directory name in the @@ -2417,7 +2417,7 @@ violation, elsefalse.truethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging. +Rule 17 - Packaging.+Rule 17 - Packaging.
rule_2a_mismatch(boolean)
- calculated size is NOT violated but this is
trueif @@ -2436,12 +2436,12 @@ violation, elsefalse.truethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging.
highbit_warning(boolean)
trueifiocccsizedetects a high bit (unescaped octets with the high bit set - octet value >= 128); see -Rule 12 UTF-8, +Rule 12 - UTF-8, elsefalse.@@ -2469,7 +2469,7 @@ else
nul_warning(boolean)false.IMPORTANT: if the
+Rule 17 - Packaging!Makefilefile has no problems and this istruethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2479,7 +2479,7 @@ for more information.IMPORTANT:: if the
+Rule 17 - Packaging!Makefilefile does NOT have anallrule then you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2490,7 +2490,7 @@ for more information.IMPORTANT: if the
+Rule 17 - Packaging!Makefilefile does NOT have anallrule and this boolean istruethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2501,7 +2501,7 @@ for more information.IMPORTANT: if the
+Rule 17 - Packaging!Makefilefile does NOT have acleanrule and this boolean istruethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2512,7 +2512,7 @@ for more information.IMPORTANT: if the
+Rule 17 - Packaging!Makefilefile does NOT have anclobberrule and this boolean istruethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2523,7 +2523,7 @@ for more information.IMPORTANT: if the
+Rule 17 - Packaging!Makefilefile does NOT have atryrule and this boolean istruethen you stand a good chance of having your submission rejected for violating -Rule 17 Packaging!See the FAQ on “Makefile” for more information.
@@ -2549,7 +2549,7 @@ for more information.IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating -Rule 17 Packaging!
+Rule 17 - Packaging!+Rule 17 - Packaging!
auth_JSON(double quoted string)
- This
MUSTbe".auth.json", defined asAUTH_JSON_FILENAMEin @@ -2562,7 +2562,7 @@ for more information.IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating -Rule 17 Packaging!
+Rule 17 - Packaging!
c_src(double quoted string)
- This
MUSTbe"prog.c", defined asPROG_C_FILENAMEin @@ -2572,7 +2572,7 @@ is your submission source code.IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating -Rule 17 Packaging!
+Rule 17 - Packaging!
Makefile(double quoted string)
- This
MUSTbe"Makefile", defined asMAKEFILE_FILENAMEin @@ -2585,7 +2585,7 @@ for more information.IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating -Rule 17 Packaging!
+Rule 17 - Packaging!
remarks(double quoted string)
- This
MUSTbe"remarks.md", defined asREMARKS_FILENAMEin @@ -2598,7 +2598,7 @@ for more information.IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating -Rule 17 Packaging!
The
manifestarray also OPTIONALLY has one or more of the field:@@ -2611,7 +2611,7 @@ and
chksubmitwill verify this for you; it is ALSO filenames are not unique, not POSIX plus + safe chars only, if they are the wrong permission and various other things. In these cases you stand a great risk of having your submission rejected for violating -Rule 17 Packaging! +Rule 17 - Packaging! On the other hand, ONLYmkiocccentrywill verify that the files exist and can be read;txzchk(1)will NOT do this for you as it only LISTS the tarball: it does NOT extract it. @@ -2674,7 +2674,7 @@ out of range (see above for list). Two more examples would be if a field is missing or if an unknown filed is in the file. In these cases (and any others that must be established as valid bychksubmit) your submission would be rejected for violating -Rule 17 Packaging](next/rules.html#rule-17-packaging), +Rule 17 - Packaging, and in particular becausechksubmitwould not validate the.info.jsonfile.If you wish to verify that your
.info.jsonfile is valid JSON then see the diff --git a/faq.md b/faq.md index 4b4929194..14a59f60c 100644 --- a/faq.md +++ b/faq.md @@ -26,7 +26,7 @@ This is FAQ version **28.2.24 2025-11-18**. - **Q 1.4**: How can I check if my submission passes tests without having to answer questions? - **Q 1.5**: What are extra files and how may I include additional files beyond the max allowed? - **Q 1.6**: May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission? -- **Q 1.7**: What are the details behind Rule 17? +- **Q 1.7**: What are the details behind Rule 17 - Packaging? - **Q 1.8**: How can I avoid re-entering my UUID to mkiocccentry? - **Q 1.9**: How can I avoid having to move or delete my submission directory for the same workdir? - **Q 1.10**: Can I download my submission tarball from the submit server? @@ -38,7 +38,7 @@ This is FAQ version **28.2.24 2025-11-18**. - **Q 2.1**: How can I comment or make a suggestion on IOCCC rules, guidelines and tools? - **Q 2.2**: Are there any compiler warnings that I should not worry about in my submissions? - **Q 2.3**: What types of entries have been frequently submitted to the IOCCC? -- **Q 2.4**: How did an entry that breaks the size rule 2 win the IOCCC? +- **Q 2.4**: How did an entry win the IOCCC that breaks Rule 2 - Size? - **Q 2.5**: How many submissions do the judges receive for a given IOCCC? - **Q 2.6**: How much time does it take to judge the contest? - **Q 2.7**: How many judging rounds do you have? @@ -215,7 +215,7 @@ This toolkit is from the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) and it is **required** that you use it to package your submission. Not doing so puts you at a great risk of violating the [Rules](next/rules.html) and in particular -[Rule 17 Packaging](next/rules.html#rule-17-packaging). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging). Jump to: [top](#) @@ -386,7 +386,7 @@ directory** will be created, with the name based on your IOCCC registration username, which is **in the form of a UUID**, and submission number along with the timestamp; see the [rules](next/rules.html) for more details on this, and in particular -[Rule 17 Packaging](next/rules.html#rule-17-packaging). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging). **IMPORTANT NOTE**: the tools that require other tools, `mkiocccentry(1)` and `txzchk(1)`, will, as of version `2.0.2 2025-03-11`, search under `$PATH`. If @@ -576,7 +576,7 @@ rounds; we look at the author name only if an entry wins. See the - leaving the remark section empty (which would also indicate that you did not use `mkiocccentry(1)`, as it requires it to not be of size 0, though if you only include whitespace you would still be violating -[Rule 17 Packaging](next/rules.html#rule-17-packaging)). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging)). Jump to: [top](#) @@ -635,12 +635,12 @@ for more details. See the FAQ on "[Rule 17](#rule17)" and -[Rule 17 Packaging](next/rules.html#rule-17-packaging) +[Rule 17 - Packaging](next/rules.html#rule-17---packaging) itself. Do remember that if your submission requires different filenames, then you **MUST** make a **COPY** of them in your `Makefile`. See also -[Rule 5 Purity](next/rules.html#rule-5-purity). +[Rule 5 - Purity](next/rules.html#rule-5---purity). Jump to: [top](#) @@ -852,12 +852,12 @@ itself is an extra file, meaning it counts **AS** an extra file. This file does **NOT** need to pass the `txzchk(1)` tests; only your submission tarball needs to pass these tests. However see below if you do do this. -Please pay careful attention to [Rule 17 Packaging](next/rules.html#rule-17-packaging) and in +Please pay careful attention to [Rule 17 - Packaging](next/rules.html#rule-17---packaging) and in particular the part about the maximum number of files per submission, which not only discusses the maximum number of files but also specific rules you must follow if you do include a tarball. Not following these points puts you at great risk -of violating [Rule 17 Packaging](next/rules.html#rule-17-packaging)! +of violating [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! Also, remember what the [guidelines](next/guidelines.html) say: @@ -896,7 +896,7 @@ Jump to: [top](#)-### Q 1.7: What are details behind Rule 17? +### Q 1.7: What are details behind Rule 17 - Packaging?@@ -919,7 +919,7 @@ contains **IMPORTANT** tools and libraries such as: - `chksubmit(1)` (which uses `jparse(3)` and is a wrapper to `chkentry(1)`) The above mentioned tools will help you verify that your submission -conforms to [Rule 17 Packaging](next/rules.html#rule-17-packaging). Each of these tool has a `-h` +conforms to [Rule 17 - Packaging](next/rules.html#rule-17---packaging). Each of these tool has a `-h` option that provides command line help. For additional details of each tool, see its man page, and in some cases, the [IOCCC guidelines](next/guidelines.html). @@ -981,7 +981,7 @@ for help. The `remarks.md` **MUST** be a **non**-empty file in markdown format (`mkiocccentry(1)` only checks the file size but if you do not have any text in it you still risk violating this rule). See also -[Rule 17 Packaging](next/rules.html#rule-17-packaging) +[Rule 17 - Packaging](next/rules.html#rule-17---packaging) and our FAQ on "[remarks.md](#remarks_md)", our @@ -1089,7 +1089,7 @@ permissions and `mkiocccentry(1)` does this for you. In particular: directories `-r-xr-xr-x` (i.e. `0555`); and all other files **MUST** be `-r--r--r--` (i.e. `0444`). If any file or directory does not have the correct permissions, your submission **WILL** be rejected for violating -[Rule 17 Packaging](next/rules.html#rule17)! +[Rule 17 - Packaging](next/rules.html#rule17)! After `mkiocccentry(1)` creates the directories and copies the files with these modes, it also verifies them after the fact and if they are not correct it is an @@ -1097,10 +1097,10 @@ modes, it also verifies them after the fact and if they are not correct it is an If you do need different permissions, then see the FAQ on "[file permissions](#file_perms)". Also keep in mind -[Rule 4 Files](next/rules.html#rule-4-files), -[Rule 5 Purity](next/rules.html#rule-5-purity), +[Rule 4 - Files](next/rules.html#rule-4---files), +[Rule 5 - Purity](next/rules.html#rule-5---purity), and -[Rule 16 Anonymous](next/rules.html#rule-16-anonymous). +[Rule 16 - Anonymous](next/rules.html#rule-16---anonymous). The `txzchk(1)` tool will also verify file/directory permissions (and many other things) for you, and so will `chksubmit(1)` (along with other checks on files and @@ -1115,9 +1115,9 @@ The tarball filename **MUST** pass `fnamchk(1)`; the tool `txzchk(1)` will run `fnamchk(1)` as part of its algorithm. If you use `mkiocccentry(1)` there should be no problem but if you were to package things manually it is possible there could be a problem and this poses a big risk of violating -[Rule 4 Files](next/rules.html#rule-4-files) +[Rule 4 - Files](next/rules.html#rule-4---files) or -[Rule 17 Packaging](next/rules.html#rule17). +[Rule 17 - Packaging](next/rules.html#rule17). The `fnamchk(1)`, which `txzchk(1)` executes, will verify that the @@ -1127,9 +1127,9 @@ discrepancy as an error and exit with non-zero. These checks **MUST PASS**. If they do not you stand a significant chance of having your submission rejected for violating -[Rule 4 Files](next/rules.html#rule-4-files) +[Rule 4 - Files](next/rules.html#rule-4---files) or -[Rule 17 Packaging](next/rules.html#rule17). +[Rule 17 - Packaging](next/rules.html#rule17).#### Maximum number of files per submission @@ -1170,9 +1170,9 @@ The `mkiocccentry(1)` tool uses the v7 format. For instance you might try:
**IMPORTANT**: where -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), and -[Rule 17 Packaging](next/rules.html#rule-17-packaging). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging). and the tools from the latest release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry) conflict, the [IOCCC judges](judges.html) will use their best judgment which @@ -1213,9 +1213,9 @@ for help here and also read our FAQ on "[mkiocccentry repo bugs](#mkiocccentry_bugs)". At the risk of stating the obvious: submissions that violate -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), or -[Rule 17 Packaging](next/rules.html#rule-17-packaging) +[Rule 17 - Packaging](next/rules.html#rule-17---packaging) **WILL BE REJECTED**, so **BE SURE** to use the latest release of the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), to form and test your submission's xz compressed tarball. Do **NOT** assume you have the most @@ -1575,7 +1575,7 @@ Jump to: [top](#)@@ -1874,9 +1874,9 @@ two JSON files, `.auth.json` and `.info.json` as well as the `prog.c`, `.info.json` manifest. (Okay there is an option to skip files but this is for the judges **ONLY**; use of this option to validate your submission puts you at a great risk of violating -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), or -[Rule 17 Packaging](next/rules.html#rule-17-packaging)!). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging)!). As an example, if your submission directory is `00000000-0000-4000-0000-000000000000-3/` then you should run the following @@ -1903,9 +1903,9 @@ FAQ on "[.auth.json](#auth_json)" and the FAQ on "[.info.json](#info_json)" as well as -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), and -[Rule 17 Packaging](next/rules.html#rule-17-packaging) +[Rule 17 - Packaging](next/rules.html#rule-17---packaging) for more information. **NOTE**: the `chksubmit(1)` tool invokes `chkentry(1)` but as a contestant you @@ -1999,12 +1999,12 @@ In order of the file's contents we describe each required field, below: * The IOCCC contestant ID used as a username in the form of **in the form of a UUID** and submission number; see the [Rules](next/rules.html) for more details on this, and in particular - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). **NOTE:** if the contest ID is **NOT** in this format then `fnamchk` will report it as an **error** and your submission **WILL BE** rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `tarball` (double quoted string) * The xz compressed tarball filename. @@ -2012,10 +2012,10 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for this to be valid. If there is a mismatch you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! Moreover, it is possible that `txzchk` will report a problem through `fnamchk(1)` which also puts you at great risk of violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). The + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). The `txzchk(1)` tool will use the output of `fnamchk` to obtain the correct directory _name_ in the tarball; if `fnamchk` fails to validate your filename, or if you have the wrong directory name in the @@ -2030,7 +2030,7 @@ In order of the file's contents we describe each required field, below: in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If this is not the case you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `author_count` (number) * How many authors this submission has. @@ -2095,7 +2095,7 @@ author(s) of the submission: in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If this is not the case you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). **NOTE:** an **affiliation** does **NOT** have any affect on whether you will win or not. @@ -2180,9 +2180,9 @@ At the risk of stating the obvious, if your `.auth.json` file is invalid JSON or is reported invalid by `chksubmit(1)`, or if your submission directory is reported invalid by `chksubmit(1)`, your submission will almost certainly be rejected for violating the [Rules](next/rules.html) and in particular -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), and -[Rule 17 Packaging](next/rules.html#rule-17-packaging). +[Rule 17 - Packaging](next/rules.html#rule-17---packaging). An obvious example where `chksubmit(1)` would fail to validate `.auth.json` is if there is a mismatch of type in the JSON file with what is expected, for @@ -2192,9 +2192,9 @@ out of range (see above for list). Two more examples would be if a field is missing or if an unknown filed is in the file. In these cases (and any others that must be established as valid by `chksubmit(1)`) your submission would be rejected for violating -[Rule 4 Files](next/rules.html#rule-4-files), +[Rule 4 - Files](next/rules.html#rule-4---files), and -[Rule 17 Packaging](next/rules.html#rule-17-packaging) +[Rule 17 - Packaging](next/rules.html#rule-17---packaging) and in particular because `chksubmit(1)` would not validate the `.auth.json` file (and maybe other things too). @@ -2318,7 +2318,7 @@ In order of the file's contents we describe each required field, below: * The IOCCC contestant ID used as a username in the form of **in the form of a UUID** and submission number; see the [rules](next/rules.html) for more details on this, and in particular - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `submit_slot` (number) * The submission number. @@ -2329,7 +2329,7 @@ In order of the file's contents we describe each required field, below: in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If this is not the case you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `title` (double quoted string) * A short name (length >= 1 **THROUGH** `MAX_TITLE_LEN`, defined in @@ -2339,7 +2339,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if this is **NOT** the case you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `abstract` (double quoted string) * A one line summary of your submission, with a length of 1 **THROUGH** @@ -2351,7 +2351,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if your abstract is 0 in length or > the maximum abstract length you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `tarball` (double quoted string) * The xz compressed tarball filename. @@ -2359,10 +2359,10 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** this **MUST** match the actual tarball's **filename** in order for this to be valid. If there is a mismatch you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! Moreover, it is possible that `txzchk` will report a problem through `fnamchk(1)` which also puts you at great risk of violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). The `txzchk(1)` tool will use the output of `fnamchk` to obtain the correct directory _name_ in the tarball; if `fnamchk` fails to validate your filename, or if you have the wrong directory name in the @@ -2397,7 +2397,7 @@ In order of the file's contents we describe each required field, below: calculated size is **NOT** violated but this is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `rule_2a_mismatch` (boolean) * `true` if @@ -2415,12 +2415,12 @@ In order of the file's contents we describe each required field, below: calculated size is **NOT** violated but this is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging). + [Rule 17 - Packaging](next/rules.html#rule-17---packaging). - `highbit_warning` (boolean) * `true` if `iocccsize` detects a high bit (unescaped octets with the high bit set - octet value >= 128); see - [Rule 12 UTF-8](next/rules.html#rule-12-utf-8), + [Rule 12 - UTF-8](next/rules.html#rule-12---utf-8), else `false`. - `nul_warning` (boolean) @@ -2443,7 +2443,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if the `Makefile` file has no problems and this is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2454,7 +2454,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:**: if the `Makefile` file does **NOT** have an `all` rule then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2466,7 +2466,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if the `Makefile` file does **NOT** have an `all` rule and this boolean is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2478,7 +2478,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if the `Makefile` file does **NOT** have a `clean` rule and this boolean is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2490,7 +2490,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if the `Makefile` file does **NOT** have an `clobber` rule and this boolean is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2502,7 +2502,7 @@ In order of the file's contents we describe each required field, below: **IMPORTANT:** if the `Makefile` file does **NOT** have a `try` rule and this boolean is `true` then you stand a good chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! See the FAQ on "[Makefile](#makefile)" @@ -2528,7 +2528,7 @@ The `mkiocccentry(1)` tool will write it in this order: **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `auth_JSON` (double quoted string) * This `MUST` be `".auth.json"`, defined as `AUTH_JSON_FILENAME` in @@ -2541,7 +2541,7 @@ The `mkiocccentry(1)` tool will write it in this order: **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `c_src` (double quoted string) * This `MUST` be `"prog.c"`, defined as `PROG_C_FILENAME` in @@ -2551,7 +2551,7 @@ The `mkiocccentry(1)` tool will write it in this order: **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `Makefile` (double quoted string) * This `MUST` be `"Makefile"`, defined as `MAKEFILE_FILENAME` in @@ -2564,7 +2564,7 @@ The `mkiocccentry(1)` tool will write it in this order: **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! - `remarks` (double quoted string) * This `MUST` be `"remarks.md"`, defined as `REMARKS_FILENAME` in @@ -2577,7 +2577,7 @@ The `mkiocccentry(1)` tool will write it in this order: **IMPORTANT:** if this is **NOT** the case you stand a great chance of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! The `manifest` **array** also **OPTIONALLY** has one or more of the field: @@ -2590,7 +2590,7 @@ The `manifest` **array** also **OPTIONALLY** has one or more of the field: filenames are not unique, not POSIX plus + safe chars only, if they are the wrong permission and various other things. In these cases you stand a great risk of having your submission rejected for violating - [Rule 17 Packaging](next/rules.html#rule-17-packaging)! + [Rule 17 - Packaging](next/rules.html#rule-17---packaging)! On the other hand, **ONLY** `mkiocccentry` will verify that the files exist and can be read; `txzchk(1)` will **NOT** do this for you as it only **LISTS** the tarball: it does **NOT** extract it. @@ -2654,7 +2654,7 @@ out of range (see above for list). Two more examples would be if a field is missing or if an unknown filed is in the file. In these cases (and any others that must be established as valid by `chksubmit`) your submission would be rejected for violating -Rule 17 Packaging](next/rules.html#rule-17-packaging), +[Rule 17 - Packaging](next/rules.html#rule-17---packaging), and in particular because `chksubmit` would not validate the `.info.json` file. diff --git a/news.html b/news.html index 6e5666795..af10fb17a 100644 --- a/news.html +++ b/news.html @@ -747,11 +747,11 @@ as well as a critical fix for installing on BSD based systems. and compile the mkiocccentry tool set. You may also wish to install this code. See also the mkiocccentry FAQ for more information.-### Q 2.4: How did an entry that breaks the size rule 2 win the IOCCC? +### Q 2.4: How did an entry win the IOCCC that breaks Rule 2 - Size?2024-12-30
-The IOCCC Rule 12 UTF-8 no longer discourages the +
The IOCCC Rule 12 - UTF-8 no longer discourages the use of UTF-8 in C source. Since the days of
--std=gnu17compilers, UTF-8 characters do not impose a compiler problem. The related guideline states that “Rule 13 no longer discourages the use of UTF-8 +characters in C code”.The IOCCC Rule 8 Submission wording has been fixed. It no longer +
The IOCCC Rule 8 - Submission wording has been fixed. It no longer states that email will be sent. Instead it talks about potential slot comment modifications as means to tell the submitter that their submission was received.
All of the import IOCCC dates within the IOCCC rules diff --git a/news.md b/news.md index e5f88a681..8783f9f10 100644 --- a/news.md +++ b/news.md @@ -406,12 +406,12 @@ See also the [mkiocccentry FAQ](https://github.com/ioccc-src/mkiocccentry/blob/m ## 2024-12-30 -The IOCCC [Rule 12 UTF-8](next/rules.html#rule-12-utf-8) no longer discourages the +The IOCCC [Rule 12 - UTF-8](next/rules.html#rule-12---utf-8) no longer discourages the use of UTF-8 in C source. Since the days of `-std=gnu17` compilers, UTF-8 characters do not impose a compiler problem. The related guideline states that "Rule 13 no longer discourages the use of UTF-8 +characters in C code". -The IOCCC [Rule 8 Submission](next/rules.html#rule-8-submission) wording has been fixed. It no longer +The IOCCC [Rule 8 - Submission](next/rules.html#rule-8---submission) wording has been fixed. It no longer states that email will be sent. Instead it talks about potential slot comment modifications as means to tell the submitter that their submission was received. diff --git a/next/guidelines.html b/next/guidelines.html index 71edd39b7..e5b437f2e 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -570,12 +570,12 @@ may change from contest to contest.
Uploading a tarball not formed by
+Rule 17 - Packaging.mkiocccentry(1)puts you at a very big risk of violating -Rule 17 Packaging, +Rule 17 - Packaging, especially asmkiocccentry(1)does a great number of things that are required, and it also runs many checks, and if any of those checks fail, you are at a very great risk of having your submission rejected for violating -Rule 17 Packaging.We STRONGLY recommend you do install the mkiocccentry toolkit.
IMPORTANT NOTE: the tools that require other tools,
mkiocccentry(1)and @@ -626,7 +626,7 @@ index.html:IMPORTANT HINT: Only 3 of the 23 IOCCC28 winners came close to the -Rule 2 Size limit. +Rule 2 - Size limit. Large code size isn’t everything. :-) Those submitting to future contents should take a careful note of that fact.
@@ -638,7 +638,7 @@ note of that fact. the IOCCC size Rule 2b Next Size.To check your code against -Rule 2 Size, use the
iocccentry(1)tool. +Rule 2 - Size, use theiocccentry(1)tool. For example:iocccsize prog.cThe IOCCC size tool algorithm can be summarized as follows:
@@ -666,7 +666,7 @@ BESM-6, and 2503 is a decimal anagram of 2053.Take note that this secondary limit imposed by the IOCCC size tool obviates some of the need to
+Rule 2 - Size.#defineC reserved words in an effort to get around the size limits of -Rule 2 Size.Yes Virginia, that is a hint!
The official locale of the IOCCC is C.