diff --git a/faq.html b/faq.html index 72771a990..ad9a3ea7d 100644 --- a/faq.html +++ b/faq.html @@ -425,7 +425,7 @@
This is FAQ version 28.2.9 2025-02-12.
+This is FAQ version 28.2.10 2025-02-26.
mkiocccentry(1) process and what sort of checks does it perform?fnamchk tool?.auth.json and/or .info.json files?.auth.json file?.info.json file?author handle?MAX_FILE_COUNT) and other information about your submission,
-information about the author (or authors), and then it runs a lot of tests.
+information about the author (or authors), and then it will give you a list of
+subdirectories, if any, that will be made, and files that will be copied to the
+submission directory. It will list files and directories that it will (for
+various reasons) not create as well, asking you to confirm these things are all
+okay. Some things are strictly forbidden (such as a directory tree too deep) and
+it will tell you about these as well, so you can fix it.
+Assuming you agree to the list of directories and files, it will make the
+directories (if necessary) and copy the files. It will then switch to the
+submission directory, run make clobber and then scan the directory again,
+looking for mismatches. If no errors are detected it will list everything to you
+again, asking you to confirm it is good.
If everything is OK, it will write the required .auth.json and .info.json
-files, checking each with chkentry(1) and then, if all is OK, it will create
-the tarball. After the tarball is formed, it will run txzchk(1) on it, which
-runs fnamchk(1). If all is OK, your submission tarball should be good to go.
chkentry(1) on the directory. If all is OK it will create the
+tarball. After the tarball is formed, it will run txzchk(1) on it, which runs
+fnamchk(1). If all is OK, your submission tarball should be good to go.
Please see
FAQ on “txzchk”,
the
@@ -706,19 +716,20 @@ cause problems. Additionally, if you do not have the most recent version when
submitting a tarball it will be rejected for not having the right versions of
the tools. This is why you MUST make sure you have the most recent version
of all the tools and you either run it from the repo directory itself OR you
-install them (make install as via sudo or as root).
make install as via sudo or as root). We recommend you install
+the tools but if you wish to run it from the repo directory you may.
If the subdirectory in the work directory (based on your submit ID and -slot number) already exists, you will have to -move it, remove it or otherwise specify a different work directory (NOT the -subdirectory), as it needs to be empty.
-This subdirectory is where your files will be copied to. Your submission
-tarball (which you will upload to the submit server) that txzchk(1) will
-validate will be placed in the work directory, and its contents will
-be the subdirectory with your submission’s files.
-The mkiocccentry(1) tool will also ask you for information about your
-submission as well as author details (that will only be looked at if the
-submission wins), run some tests and run a number of other tools, as
-mentioned above, and as described in the “finer
+slot number) already exists, you will have to move it, remove it or otherwise
+specify a different work directory (NOT the subdirectory), as it needs to be
+empty.
This subdirectory is where your directories will be made and where your files
+will be copied to. Your submission tarball (which you will upload to the
+submit server) that txzchk(1) will validate will be placed in the work
+directory, and its contents will be the subdirectory with your
+submission’s files. The mkiocccentry(1) tool will also ask you for
+information about your submission as well as author details (that will only be
+looked at if the submission wins), run some tests and run a number of other
+tools, as mentioned above, and as described in the “finer
details” section.
See also the mkiocccentry repo FAQ @@ -885,7 +896,7 @@ FAQ on “submission Makefiles.
As Rule 17 states, files in your submission tarball MUST be +
As Rule 17 states, files in your submission tarball MUST be
specific permissions. In particular: directories MUST be drwxr-xr-x (i.e.
0755), the optional files, try.sh or try.alt.sh, if provided, MUST be
-r-xr-xr-x (i.e. 0555) and all other files MUST be -r--r--r-- (i.e.
@@ -969,7 +980,7 @@ For example:
The IOCCC makes extensive use of markdown.
For example, when submitting to the IOCCC, we have people
-submit remarks about entry in markdown format. Every
+submit remarks about their submission(s) in markdown format. Every
winning IOCCC entry uses a README.md markdown file
as the basis for forming the index.html web page for that entry.
All generated HTML pages on the Official IOCCC website
@@ -1018,6 +1029,10 @@ do have to try again you’ll have to remove it.
This will run the tests that mkiocccentry(1), write the JSON files, use
chkentry(1), package the tarball and run txzchk(1) on it.
See also the +FAQ on “mkiocccentry”, +the +FAQ on “using mkiocccentry”, +the FAQ on “.info.json”, the FAQ on “.auth.json”, @@ -1047,6 +1062,13 @@ submission, which not only discusses the maximum number of files (including extra 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!
+Also, remember what the guidelines say:
+++IMPORTANT REMINDER: make SURE your tarball does NOT reveal who you are! +The
+mkiocccentry(1)tool creates a v7 format tarball to prevent this.
You can do this by creating the tarball like:
+ tar --format=v7 -cJf foo.txz directory
There are unfortunately some warnings that cannot be disabled; they are always
enabled whatever warning options you have enabled. Also, there is a warning that
-is enabled whenever you act on char *s, saying it is unsafe buffer usage, even
-when it’s not. This might be enabled by -Weverything but it might not be; for
-more details on why we use -Weverything in Clang see the
-FAQ on “-Weverything”.
It is not detrimental to your submission if you disable this, which you can do
-by specifying -Wno-unsafe-buffer-usage.
This might be enabled by -Weverything but it might not be but it is not
+detrimental to your submission if you disable this, which you can do by
+specifying -Wno-unsafe-buffer-usage.
So in short, no you should not worry about these as they are sometimes inevitable in obfuscated code and even non-obfuscated code.
If you can work past this it might be good but this is not something that -should be worried about too much as this is on the compiler developers, not you.
+should be worried about too much as this is on the compiler developers, not you. +Of course if you do work past it feel free to brag, though BE SURE TO TELL +US the OS, OS version, compiler and compiler version. +For more details on why we use -Weverything in Clang see the FAQ on
+“-Weverything”.
Jump to: top
.auth.json and .info.json will be created, running
-chkentry(1) on each. If all is good it’ll give you another chance to say the
+In the submission directory it first runs make clobber and then scans the
+directory hierarchy again, verifying things are still okay. When done it will
+ask you to verify things still look OK to you too. If all is good it’ll ask you
+for more information about the author(s). Next the two required JSON files
+.auth.json and .info.json will be created. After that chkentry(1) will be
+run on the directory. If all is good it’ll give you another chance to say the
files/directories look good and if you answer yes it’ll create the tarball and
run txzchk on it.
In most cases the program will prompt you to verify your input is correct. In @@ -1565,19 +1591,14 @@ but has no content is violating Rule 17 and
.info.json and run chkentry(1) on it.
+.info.json..auth.json.chkentry(1) on your submission directory to verify things look good,
+including that the .info.json and .auth.json files are okay.
chkentry(1) fails to validate the file make sure that you have
-obtained and compiled the latest version of all the tools and you either are
-in the repo’s directory, you pass the options to give the path to the tools
-or you have installed the latest tools!.auth.json and run chkentry(1) on it.
-chkentry(1) fails to validate the file make sure that you have
-obtained and compiled the latest version of all the tools and you either are
-in the repo’s directory, you pass the options to give the path to the tools
-or you have installed the latest tools!.info.json matches what is in the
+submission directory and it verifies file permissions too; if you wish to
+know what else it does we suggest you read the source code.ls -lakR ., asking the user to confirm that the listing
is okay.Jump to: top
.auth.json and/or .info.json files?If you want to validate the .auth.json or .info.json files you
-should use chkentry(1) from the mkiocccentry
-repo.
The If you want to validate your submission directory manually, including but not
+limited to the The chkentry(1) tool uses the IOCCC version of the jparse
+.auth.json or .info.json files, you should use chkentry(1)
+from the mkiocccentry repo.chkentry(1) tool runs a variety of checks on your submission directory,
+including but not limited to, using the jparse
API
-to perform additional checks on these two IOCCC specific JSON files. It is
-possible that this version will at times differ from the official jparse
-API at the
-official jparse repo and this is one of the
-reasons the tools’ -V (version option) show the JSON parser version as well..info.json
+files match what is in the directory. What all the checks are is out of scope of this
+document; if you wish to know we recommend you read the source
+code.
NOTE: the IOCCC jparse +API +is a synced copy of the official jparse +repo at the time of the contest open date.
See the FAQ on “.auth.json” and FAQ on “.info.json” -for more details on these files.
-The chkentry(1) tool accepts more than one command line form.
-You may specify a .auth.json and/or
-.info.json file. An argument of “.” will skip that file. For instance:
# run checks on .info.json:
- chkentry . .info.json
-
- # run checks on .auth.json:
- chkentry .auth.json .
-
- # run checks on .auth.json and .info.json:
- chkentry .auth.json .info.json
+for more details on the two required and very important JSON files.
+The chkentry(1) tool accepts a single arg, a directory that MUST have the
+two JSON files, .auth.json and .info.json. (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
+17!).
As an example, if your submission directory is 12345678-1234-4321-abcd-1234567890ab-0/ then you should run the
+following command:
chkentry 12345678-1234-4321-abcd-1234567890ab-0
If there is a JSON issue detected by the
-jparse(3) API, then there is a JSON error and
-chkentry(1) will report it as an error. If the parsing is OK (i.e. valid
-JSON) but there is an issue in one or both of the
+jparse(3) API (i.e. it is not valid JSON) it is an error and chkentry(1)
+will report this, exiting with a non-zero exit code. If the parsing is OK (i.e.
+valid JSON) but there is an issue in one or both of the
JSON files in the context of the IOCCC,
-it will report this as an error. Thus, if you were to package your
-submission manually then you would be violating Rule
-17.
If chkentry(1) fails to validate your submission directory your submission
+WILL be REJECTED! This is why you MUST make sure you use the
+mkiocccentry(1) tool to form your submission directory.
See the +FAQ on “.auth.json” +and the +FAQ on “.info.json” +as well as Rule 17 for more information.
Jump to: top
.auth.json file?.auth.json file.NOTE: this MUST match THIS IOCCC’s .auth.json version, defined as
+
IMPORTANT: this MUST match THIS IOCCC’s .auth.json version, defined as
AUTH_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -1796,7 +1827,7 @@ this is not the case your submission WILL BE rejected!
NOTE: this MUST match THIS IOCCC’s contest value, defined as +
IMPORTANT: this MUST match THIS IOCCC’s contest value, defined as
IOCCC_CONTEST in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -1807,7 +1838,7 @@ this is not the case your submission WILL BE rejected!
NOTE: sometimes an IOCCC year runs into another year and the contest year might not match when it ends.
-NOTE: this MUST match THIS IOCCC’s contest, defined as +
IMPORTANT: this MUST match THIS IOCCC’s contest, defined as
IOCCC_YEAR in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -1816,17 +1847,17 @@ this is not the case your submission WILL BE rejected!
mkiocccentry that formed this .auth.json file.NOTE: this MUST match THIS IOCCC’s mkiocccentry version,
+
IMPORTANT: this MUST match THIS IOCCC’s mkiocccentry version,
defined as MKIOCCCENTRY_VERSION in
soup/version.h
in the mkiocccentry repo. If
this is not the case your submission WILL BE rejected!
chkentry_version (double quoted string)
chkentry that was used to validate this .auth.json,
-assuming that it was created by mkiocccentry.chkentry that was used to validate the submission
+directory, including the .auth.json file.NOTE: this MUST match THIS IOCCC’s chkentry version, defined
+
IMPORTANT: this MUST match THIS IOCCC’s chkentry version, defined
as CHKENTRY_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -1836,7 +1867,7 @@ this is not the case your submission WILL BE rejected!
fnamchk that txzchk uses to validate the filename of
the xz compressed tarball.NOTE: this MUST match THIS IOCCC’s fnamchk version in order for it
+
IMPORTANT: this MUST match THIS IOCCC’s fnamchk version in order for it
to be valid. If this is not the case your submission WILL BE rejected!
IOCCC_contest_id (double quoted string)
NOTE: this MUST match the actual tarball’s filename in order for +
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!
Moreover, it is possible that txzchk will report a problem through
fnamchk(1) which also puts you at great risk of violating Rule
-17. If txzchk does not detect this, though, it
-does not mean it’s a bug but rather that the directory in the tarball
-matches the filename.
txzchk 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
+tarball, this will be flaggd.
submit_slot (number)
NOTE: this MUST be within the range of 0 THROUGH +
IMPORTANT: this MUST be within the range of 0 THROUGH
MAX_SUBMIT_SLOT (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
@@ -1873,7 +1905,7 @@ rejected for violating Rule 17!
NOTE: this MUST be within the range of 1 THROUGH +
IMPORTANT: this MUST be within the range of 1 THROUGH
MAX_AUTHORS (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
@@ -1910,10 +1942,14 @@ for a list of valid codes.
url (null or double quoted string)
null if not provided.http:// or https:// and have more text after it;
+we do not even try and detect a hostname.alt_url (null or double quoted string)
null if not provided.http:// or https:// and have more text after it;
+we do not even try and detect a hostname.mastodon (null or double quoted string)
null if not provided.NOTE: if provided, the length of the affiliation MUST be within +
IMPORTANT: if provided, the length of the affiliation MUST be within
the range of 1 THROUGH MAX_AFFILIATION_LEN (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
@@ -1974,7 +2010,7 @@ for more information.
NOTE: this MUST be greater than or equal to MIN_TIMESTAMP (see
+
IMPORTANT: this MUST be greater than or equal to MIN_TIMESTAMP (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
this is not the case your submission WILL BE rejected.
.auth.json was
formed - see gettimeofday(2)) second.NOTE: this MUST be within the range MIN_FORMED_TIMESTAMP_USEC
+
IMPORTANT: this MUST be within the range MIN_FORMED_TIMESTAMP_USEC
THROUGH MAX_FORMED_TIMESTAMP_USEC and is validated by
test_formed_timestamp_usec() in
soup/entry_util.c
@@ -1994,7 +2030,7 @@ submission WILL BE rejected!
"Thu Jan 01 00:00:00 1970 UTC" (gettimeofday(2) epoch).NOTE: this MUST be "Thu Jan 01 00:00:00 1970 UTC" which is #defined
+
IMPORTANT: this MUST be "Thu Jan 01 00:00:00 1970 UTC" which is #defined
as TIMESTAMP_EPOCH in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -2003,30 +2039,35 @@ this is not the case your submission WILL BE rejected!
NOTE: this MUST be >= MIN_TIMESTAMP defined in
+
IMPORTANT: this MUST be >= MIN_TIMESTAMP defined in
soup/limit_ioccc.h
in the mkiocccentry repo. If
this is not the case your submission WILL BE rejected!
This file will be verified with the chkentry(1) tool and if there are any
-problems it is an error. If there is an error the tarball will NOT be
-formed by mkiocccentry; otherwise the txzchk(1) tool will be executed on the
-tarball.
This file will NOT be looked at unless the submission wins! Nonetheless,
-chkentry(1) WILL BE used on the file as part of the judging process.
This file will be validated with the chkentry(1) tool and if there are any
+problems with it or the submission directory, it is an error. If there is an
+error the tarball will NOT be formed by mkiocccentry; otherwise the
+txzchk(1) tool will be executed on the tarball.
This file will NOT be looked at unless the submission wins! Nonetheless, the
+file MUST be present in the submission directory and it MUST be valid
+JSON and it MUST pass all IOCCC semantics checks and all other checks
+chkentry(1) perform. chkentry(1) is used by mkiocccentry(1) and the judges
+will use it on the submission directory as part of the judging process.
At the risk of stating the obvious, if your .auth.json file is invalid JSON or
-is reported invalid by chkentry your submission will almost certainly be
+is reported invalid by chkentry(1), or if your submission directory is
+reported invalid by chkentry(1), your submission will almost certainly be
rejected for violating the Rules and in particular Rule
17.
An obvious example where chkentry would fail to validate .auth.json is if
+
An obvious example where chkentry(1) would fail to validate .auth.json is if
there is a mismatch of type in the JSON file with what is expected, for
instance, if in .auth.json the no_comment that we chose to not comment on is
-not a string. Another obvious example is when things are 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 chkentry) your submission would be rejected for violating Rule
-17 and in particular because chkentry would not
-validate the .auth.json file.
chkentry(1)) your submission would be
+rejected for violating Rule 17 and in particular
+because chkentry(1) would not validate the .auth.json file (and maybe other
+things too).
If you wish to verify that your .auth.json file is valid JSON then see the
FAQ on “validating JSON documents”.
Jump to: top
@@ -2066,7 +2107,7 @@ for more information..info.json files.NOTE: this MUST match THIS IOCCC’s .info.json version, defined as
+
IMPORTANT: this MUST match THIS IOCCC’s .info.json version, defined as
INFO_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -2075,7 +2116,7 @@ this is not the case your submission WILL BE rejected!
NOTE: this MUST match THIS IOCCC’s contest value, defined as +
IMPORTANT: this MUST match THIS IOCCC’s contest value, defined as
IOCCC_CONTEST in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -2086,7 +2127,7 @@ this is not the case your submission WILL BE rejected!
NOTE: sometimes an IOCCC year runs into another year and the contest year might not match when it ends.
-NOTE: this MUST match THIS IOCCC’s contest, defined as +
IMPORTANT: this MUST match THIS IOCCC’s contest, defined as
IOCCC_YEAR in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -2095,7 +2136,7 @@ this is not the case your submission WILL BE rejected!
mkiocccentry that formed this .auth.json file.NOTE: this MUST match THIS IOCCC’s mkiocccentry version,
+
IMPORTANT: this MUST match THIS IOCCC’s mkiocccentry version,
defined as MKIOCCCENTRY_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -2104,17 +2145,17 @@ this is not the case your submission WILL BE rejected!
iocccsize that was used for this .info.json file.NOTE: this MUST match THIS IOCCC’s iocccentry version,
+
IMPORTANT: this MUST match THIS IOCCC’s iocccentry version,
defined as IOCCCSIZE_VERSION in
soup/version.h
in the mkiocccentry repo. If
this is not the case your submission WILL BE rejected!
chkentry_version (double quoted string)
chkentry that was used to validate this .info.json,
-assuming that it was created by mkiocccentry.chkentry that was used to validate the submission
+directory, including the .info.json file.NOTE: this MUST match THIS IOCCC’s chkentry version, defined
+
IMPORTANT: this MUST match THIS IOCCC’s chkentry version, defined
as CHKENTRY_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -2124,7 +2165,7 @@ this is not the case your submission WILL BE rejected!
fnamchk that txzchk uses to validate the filename of
the xz compressed tarball.NOTE: this MUST match THIS IOCCC’s fnamchk version, defined
+
IMPORTANT: this MUST match THIS IOCCC’s fnamchk version, defined
as FNAMCHK_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -2133,7 +2174,7 @@ this is not the case your submission WILL BE rejected!
txzchk used to validate the xz compressed tarball.NOTE: this MUST match THIS IOCCC’s txzchk version, defined
+
IMPORTANT: this MUST match THIS IOCCC’s txzchk version, defined
as TXZCHK_VERSION in
soup/version.h
in the mkiocccentry repo. If
@@ -2143,15 +2184,12 @@ this is not the case your submission WILL BE rejected!
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!
submit_slot (number)
NOTE: this MUST be within the range of 0 THROUGH +
IMPORTANT: this MUST be within the range of 0 THROUGH
MAX_SUBMIT_SLOT (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
@@ -2164,7 +2202,7 @@ rejected for violating Rule 17!
[a-z0-9][a-z0-9_+-]*.
-NOTE: if this is NOT the case you stand a great risk of having your submission +
IMPORTANT: if this is NOT the case you stand a great risk of having your submission rejected for violating Rule 17!
abstract (double quoted string)
The abstract may not contain a ; (semicolon), nor & (ampersand), nor , (comma).
NOTE: if your abstract is 0 in length or > the maximum abstract length you +
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!
tarball (double quoted string)
NOTE: this MUST match the actual tarball’s filename in order for +
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!
Moreover, it is possible that txzchk will report a problem through
fnamchk(1) which also puts you at great risk of violating Rule
-17. If txzchk does not detect this, though, it
-does not mean it’s a bug but rather that the directory in the tarball
-matches the filename.
txzchk 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
+tarball, this will be flaggd.
rule_2a_size (number)
NOTE: if this violates Rule 2a you stand a great +
IMPORTANT: if this violates Rule 2a you stand a great chance of having your submission rejected for violating the Rules!
rule_2b_size (number)
NOTE: if this violates Rule 2b you stand a great +
IMPORTANT: if this violates Rule 2b you stand a great chance of having your submission rejected for violating the Rules!
empty_override (boolean)
true if user overrides warning of Rule 2a
violation, else false.NOTE: if the Rule 2a calculated size is NOT +
IMPORTANT: if the Rule 2a calculated size is NOT
violated but this is true then you stand a good chance of having your
submission rejected for violating Rule 17!
rule_2a_mismatch (boolean)
true if user overrides warning of Rule 2b
violation, else false.NOTE: if the Rule 2b calculated size is NOT +
IMPORTANT: if the Rule 2b calculated size is NOT
violated but this is true then you stand a good chance of having your
submission rejected for violating Rule 17!
highbit_warning (boolean)
true if prog.c triggered a word buffer overflow (see iocccsize),
else false.NOTE: this does NOT mean that your code has been checked for buffer +
IMPORTANT: this does NOT mean that your code has been checked for buffer overflows in general.
ungetc_warning (boolean)
true if the user overrides any warnings about an incomplete/incorrect
Makefile file, else false.NOTE: if the Makefile file has no problems and this is true then
+
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!
See the @@ -2270,7 +2309,7 @@ for more information.
true if the first rule in the Makefile file is all, else false.NOTE: if the Makefile file does NOT have an all rule or it is not
+
IMPORTANT: if the Makefile file does NOT have an all rule or it is not
first and this boolean is true then you stand a good chance of having your
submission rejected for violating Rule 17!
See the @@ -2280,7 +2319,7 @@ for more information.
true if the Makefile file has an all rule, else false.NOTE: if the Makefile file does NOT have an all rule and this
+
IMPORTANT: if the Makefile file does NOT have an all rule and this
boolean is true, or if it does NOT have an all rule but
first_rule_is_all is true then you stand a good chance of having your
submission rejected for violating Rule 17!
true if the Makefile file has a clean rule, else false.NOTE: if the Makefile file does NOT have a clean rule and this
+
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!
See the @@ -2301,7 +2340,7 @@ for more information.
true if the Makefile file has a clobber rule, else false.NOTE: if the Makefile file does NOT have an clobber rule and this
+
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!
See the @@ -2311,7 +2350,7 @@ for more information.
true if the Makefile file has a try rule, else false.NOTE: if the Makefile file does NOT have an try rule and this
+
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!
See the @@ -2321,7 +2360,7 @@ for more information.
true if the test ID was used to form the tarball, else false.NOTE: if this is true then this may NOT be submitted to the
+
IMPORTANT: if this is true then this may NOT be submitted to the
contest! Please do NOT email the Judges your submission!
Next comes the manifest array which MUST have AT LEAST the following.
@@ -2337,8 +2376,9 @@ See the
FAQ on “.info.json”
for more information.
-
NOTE: if this is NOT the case you stand a great chance of having your -submission rejected for violating Rule 17!
+IMPORTANT: if this is NOT the case you stand a +great chance of having your submission rejected for violating Rule +17!
auth_JSON (double quoted string)
MUST be ".auth.json", defined as AUTH_JSON_FILENAME in
@@ -2349,7 +2389,7 @@ See the
FAQ on “.auth.json”
for more information.NOTE: if this is NOT the case you stand a great chance of having your +
IMPORTANT: if this is NOT the case you stand a great chance of having your submission rejected for violating Rule 17!
c_src (double quoted string)
NOTE: if this is NOT the case you stand a great chance of having your -submission rejected for violating Rule 17!
-NOTE: if you provide to mkiocccentry a different filename it will be
-copied to prog.c.
IMPORTANT: if this is NOT the case you stand a great chance of having your +submission rejected for violating Rule 17!
Makefile (double quoted string)
MUST be "Makefile", defined as MAKEFILE_FILENAME in
@@ -2372,10 +2410,8 @@ See the
FAQ on “Makefile”
for more information.NOTE: if this is NOT the case you stand a great chance of having your -submission rejected for violating Rule 17!
-NOTE: if you provide to mkiocccentry a different filename it will be
-copied to Makefile.
IMPORTANT: if this is NOT the case you stand a great chance of having your +submission rejected for violating Rule 17!
remarks (double quoted string)
MUST be "remarks.md", defined as REMARKS_FILENAME in
@@ -2386,10 +2422,8 @@ See the
FAQ on “remarks.md”
for more information.NOTE: if this is NOT the case you stand a great chance of having your -submission rejected for violating Rule 17!
-NOTE: if you provide to mkiocccentry a different filename it will be
-copied to remarks.md.
IMPORTANT: if this is NOT the case you stand a great chance of having your +submission rejected for violating Rule 17!
The manifest array also OPTIONALLY has one or more of the field:
remarks.md.
NOTE: this MUST NOT match a mandatory filename (see above list) and
-chkentry will verify this for you; it is ALSO an error if the
-filenames are not unique. In these cases you stand a great risk of having
-your submission rejected for violating Rule 17! 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. Even so, the Judges
-WILL extract the tarball and if a file listed in the manifest does not
-exist your submission will very likely be rejected for not being as
-documented!
IMPORTANT: this MUST NOT match a mandatory filename (see above list)
+and chkentry will verify this for you; it is ALSO an error if the
+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! 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.
+Even so, the Judges WILL extract the tarball and if a
+file listed in the manifest does not exist your submission will very likely
+be rejected for not being as documented!
Finally, after the manifest array, the following fields MUST exist:
.auth.json or .info.json) file was formed (see gettimeofday(2)).NOTE: this MUST be greater than or equal to MIN_TIMESTAMP (see
+
IMPORTANT: this MUST be greater than or equal to MIN_TIMESTAMP (see
soup/limit_ioccc.h
in the mkiocccentry repo). If
this is not the case your submission WILL BE rejected.
.auth.json was
formed - see gettimeofday(2)) second.NOTE: this MUST be within the range MIN_FORMED_TIMESTAMP_USEC
+
IMPORTANT: this MUST be within the range MIN_FORMED_TIMESTAMP_USEC
THROUGH MAX_FORMED_TIMESTAMP_USEC and is validated by
test_formed_timestamp_usec() in
soup/entry_util.c
@@ -2434,7 +2469,7 @@ submission WILL BE rejected!
"Thu Jan 01 00:00:00 1970 UTC" (gettimeofday(2) epoch).NOTE: this MUST be "Thu Jan 01 00:00:00 1970 UTC" which is #defined
+
IMPORTANT: this MUST be "Thu Jan 01 00:00:00 1970 UTC" which is #defined
as TIMESTAMP_EPOCH in
soup/limit_ioccc.h
in the mkiocccentry repo. If
@@ -2443,25 +2478,26 @@ this is not the case your submission WILL BE rejected!
NOTE: this MUST be >= MIN_TIMESTAMP defined in
+
IMPORTANT: this MUST be >= MIN_TIMESTAMP defined in
soup/limit_ioccc.h
in the mkiocccentry repo. If
this is not the case your submission WILL BE rejected!
This file will be verified with the chkentry(1) tool and if there are any
-problems it is an error and the tarball will NOT be formed by
-mkiocccentry; otherwise the txzchk(1) tool will be executed on the tarball.
This file will be validated with the chkentry(1) tool and if there are any
+problems with it or the submission directory, it is an error. If there is an
+error the tarball will NOT be formed by mkiocccentry; otherwise the
+txzchk(1) tool will be executed on the tarball.
The Judges WILL use chkentry(1) on this file during the
judging process and if it does not pass your submission WILL BE rejected.
An obvious example where chkentry would fail to validate .info.json is if
there is a mismatch of type in the JSON file with what is expected, for
instance, if in .info.json the no_comment that we chose to not comment on is
-not a string. Another obvious example is when things are 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 chkentry) your submission would be rejected for violating Rule
-17 and in particular because chkentry would not
-validate the .info.json file.
chkentry) your submission would be
+rejected for violating Rule 17 and in particular
+because chkentry would not validate the .info.json file.
If you wish to verify that your .info.json file is valid JSON then see the
FAQ on “validating JSON documents”.
Jump to: top
@@ -4049,8 +4085,8 @@ below note) this would be advisable.NOTE: different versions of clang have other differences as well. For instance
a defect of clang that required numerous entries to be fixed for clang is that it
requires that main()’s arguments to be of a specific type. However some
-versions of clang are more strict in the number of args allowed.
-Jump to: top
clang are more strict in the number of args allowed.
+Jump to: top
See our FAQ on “rules, guidelines, tools feedback” as well as our -FAQ on “about asking questions” -about these guidelines. You might also find the FAQ in general useful, especially the +FAQ on “asking questions” +about these rules. You might also find the FAQ in general useful, as well as the +quick start guide and how to register. FAQ on “how to enter the IOCCC”.
While the IOCCC is not open yet, there is a tentative opening date for the next IOCCC.
@@ -461,11 +462,11 @@ writing by contacting the judges.IMPORTANT: Be SURE to read the IOCCC rules.
Jump to: top
@@ -602,11 +603,12 @@ The-d option is an alias for -s 21701. An example use
mkiocccentry -d workdir topdir
Jump to: top
mkiocccentry(1) tool is:
iocccsize make bug_report
+
+
+
+
Jump to: top
While the IOCCC is not open now, there is a tentative opening date for the next IOCCC.
Comments and suggestions on these preliminary rules are welcome. See the @@ -461,11 +461,11 @@ writing by contacting the judges.
IMPORTANT: Be sure to read the IOCCC guidelines.
Jump to: top
@@ -859,7 +859,7 @@ super-user, special owner, special group, etc.) are still HIGHLY DISCOURAGED. We do not guarantee these functions will behave as you expect on our test platforms. If your program needs special permissions you MUST document this fact, and explain why -it is needed in your submissionsremarks.md file.
+it is needed in your submission’s remarks.md file.
Jump to: top
.auth.json) and files that are also not the optional files (Each submission MUST be in the form of a xz compressed tarball. The xz compressed tarball filename must be of the form: -
- ^submit.username-slot_num.[1-9][0-9]{9,}.txz$
+^submit.username-slot_num.[1-9][0-9]{9,}.txz$.
However, an IMPORTANT NOTE: if you run the program outside the repo
-directory (specifying the absolute or relative path to the tool) and you
-have not installed the tools then you will have to specify the options for the
-tools that are required like chkentry(1), txzchk(1) and fnamchk(1). But
-even if you have installed them but some tools are out of date (in the install
-path) it will cause problems. Additionally, if you do not have the most recent
-version when submitting a tarball it will be rejected for not having the right
-versions of the tools. This is why you MUST make sure you have the most
-recent version of all the tools and you either run it from the repo directory
-itself OR you install them (make install as via sudo or as root).
IMPORTANT NOTE: if you run the program outside the repo directory
+(specifying the absolute or relative path to the tool) and you have not
+installed the tools then you will have to specify the options for the tools that
+are required like chkentry(1), txzchk(1) and fnamchk(1). But even if you
+have installed them but some tools are out of date (in the install path) it will
+cause problems. Additionally, if you do not have the most recent version when
+submitting a tarball it will be rejected for not having the right versions of
+the tools. This is why you MUST make sure you have the most recent version
+of all the tools and you either run it from the repo directory itself OR you
+install them (make install as via sudo or as root). We recommend you install
+the tools but if you wish to run it from the repo directory you may.
If the mkiocccentry tool indicates that there is a problem with your
submission, especially if it identifies a Rule 2, or
any other rule, related problem, you are strongly encouraged to revise and
diff --git a/quick-start.md b/quick-start.md
index 0ba5b7f3e..1cdac2008 100644
--- a/quick-start.md
+++ b/quick-start.md
@@ -164,16 +164,17 @@ submission's directory. See the
FAQ on "**[installing mkiocccentry](https://github.com/ioccc-src/mkiocccentry/blob/master/FAQ.md#install)**"
at the mkiocccentry repo.
-However, an **IMPORTANT NOTE**: if you run the program outside the repo
-directory (specifying the absolute or relative path to the tool) and you
-have not installed the tools then you will have to specify the options for the
-tools that are required like `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. But
-even if you have installed them but some tools are out of date (in the install
-path) it will cause problems. Additionally, if you do not have the most recent
-version when submitting a tarball it will be rejected for not having the right
-versions of the tools. This is why you **MUST** make sure you have the most
-recent version of all the tools and you either run it from the repo directory
-itself OR you install them (`make install` as via `sudo` or as root).
+**IMPORTANT NOTE**: if you run the program outside the repo directory
+(specifying the absolute or relative path to the tool) and you have not
+installed the tools then you will have to specify the options for the tools that
+are required like `chkentry(1)`, `txzchk(1)` and `fnamchk(1)`. But even if you
+have installed them but some tools are out of date (in the install path) it will
+cause problems. Additionally, if you do not have the most recent version when
+submitting a tarball it will be rejected for not having the right versions of
+the tools. This is why you **MUST** make sure you have the most recent version
+of all the tools and you either run it from the repo directory itself OR you
+install them (`make install` as via `sudo` or as root). We recommend you install
+the tools but if you wish to run it from the repo directory you may.
If the `mkiocccentry` tool indicates that there is a problem with your
submission, especially if it identifies a [Rule 2](next/rules.html#rule2), or