diff --git a/next/guidelines.html b/next/guidelines.html index 930f2a15c..9834e0b99 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -462,7 +462,7 @@ and remains unaltered. All other uses must receive prior permission in writing by contacting the judges.
Be sure to read the IOCCC rules.
+iocccsize(1) conflict, the algorithm implemente
by the minimum required version of iocccsize(1) is preferred by the IOCCC
judges.
Make sure iocccsize does not flag any issues with your prog.c.
NOTE: by default iocccsize will only report the rule 2b size, unless the
+code surpasses the limit.
There a much less need to #define C reserved words in an effort
to get around the size limits of
Rule 2 - Size restrictions
because of the iocccsize(1) algorithm.
Yes Virginia, the previous guideline sentence is an important hint!
Jump to: top
+If a group of people work on a submission, then they should +register for the IOCCC +using either a group email address, or an email address for one of the authors.
+Processing your registration is an activity overseen by an IOCCC judge. +Please be patient while an IOCCC judge processes your registration.
+It can take a few days to process your registration and for the server to +email your details, therefore make sure to allow yourself ample time to +register and submit your entries; DO NOT WAIT UNTIL THE FINAL DAYS +to register! The judges are NOT responsible for delayed or lost +email or for those who wait until the last minute to try to register!
+If after a few days you believe your registration hasn’t been process, then +contact the Judges.
+After your UUID and initial password are emailed to you, you have +up to fortnight (14 days) to login and change your temporary password. +If you fail to change your temporary password by that deadline, then you’ll need to +contact the Judges by email to request a reset.
+See How to register for the IOCCC.
+See Entering the IOCCC: the bare minimum you need to know.
+Jump to: top
remarks.md file.<
See the FAQ on “May I use AI, LLM, Virtual coding assistants, or similar tools to write my submission?”.
Jump to: top
+Do NOT register more than one account just try and get around the limit on the number of submission slots.
+Jump to: top
See the FAQ on “What are the details behind Rule 17 - Use mkiocccentry?”.
Jump to: top
-The IOCCC submit server, and related services -use the most recent version of the -mkiocccentry toolkit: -submissions that package using older versions of the -mkiocccentry toolkit -are LIKELY to be REJECTED!
-You REALLY SHOULD use the latest mkiocccentry -toolkit to package your submission -as submissions that use an older version are LIKELY to be REJECTED!
-The mkiocccentry(1) tool runs a number of checks by way of these
-mkiocccentry toolkit tools:
Do NOT use txzchk(1) or fnamchk(1) command line options that are labeled
-“for TESTING purposes” in their respective man pages.
Do NOT use fnamchk(1) command line options that are labeled “for TESTING purposes”
-in the fnamchk(1) man page.
Do NOT use chksubmit(1) command line options that are labeled “for the use by the IOCCC judges only”
-in the chksubmit(1) man page.
-Similarly do NOT use chkentry(1) command line options marked “for the use
-by the IOCCC judges only” in the chkentry(1) man page.
To view mkiocccentry toolkit man pages, -while your current directory is the top of the source tree:
- man soup/man/man1/mkiocccentry.1
- man soup/man/man1/iocccsize.1
- man soup/man/man1/txzchk.1
- man test_ioccc/man/man1/fnamchk.1
- man soup/man/man1/chksubmit.1
- man soup/man/man1/chkentry.1
-The above man(1) commands will show the toolkit man pages without having to install them first.
So that you do not have to repeatedly answer all the mkiocccentry(1) questions,
-use mkiocccentry -a answers ... to create a file containing the answers you first give,
-so later enter mkiocccentry -i answers ... to reuse those same answers.
The mkiocccentry -A answers ... does the same thing except that the answers file will be overwritten.
The mkiocccentry -i answers ... will still be required to confirm “Yes/No” questions.
Use mkiocccentry -Y -i answers .. to force a yes answers with great caution
-because it might force a yes answer to something you do NOT want, such as a
-change in your code that violates a detected rule.
-The mkiocccentry -i answers .. will still be required to confirm “Yes/No” questions.
-While mkiocccentry -Y -i answers .. will force yes answers, use with great caution,
-because it might force a yes answer to something you do NOT want.
To help with not having to repeatedly enter a UUID, put your UUID into a file and use
-mkiocccentry -u uuidfile ..., or use mkiocccentry -U UUID ... to give the UUID
-on the command line.
If you wish to test that your submission passes the mkiocccentry(1) tests
-without having to type in answers each time, you can use the -d or -s seed
-option to mkiocccentry for the tool to pseudo-randomly create answers for you.
-For example:
mkiocccentry -d workdir topdir
-Do NOT submit a tarball formed by mkiocccentry -d .. OR by
-mkiocccentry -s seed .. OR by using the test UUID!
The mkiocccentry(1) tool creates an xz(1) compressed v7 format tarball using a tar(1)
-command of the form:
cd workdir/UUID-slot_num && tar --format=v7 -cJf submit.UUID-slot_num.timestamp.txz UUID-slot_num
-In many places the mkiocccentry(1) tool will prompt you to verify what you input, allowing you to
-correct details as you go along.
Pressing the “enter key” at the mkiocccentry(1) tool prompts will allow you
-to proceed with a default, however make sure the default is the CORRECT
-answer.
The mkiocccentry(1) tool will use code from iocccsize(1) which detects a number of
-issues (such as Rule 2 - Size restrictions) that you may ignore,
-however ignoring such issues comes with a SIGNIFICANT level of risk!
Once the tarball is packaged it will
-run txzchk(1), which will also run fnamchk(1), as part of its algorithm.
The use of mkiocccentry -W .... is highly discouraged as this may ignore
-warnings about a problem that may cause your submission to be REJECTED!”
The same can be said of the -Y option, and to a lesser extent -y: the -y
-is mostly for the test script and the -Y is like -y but even more
-aggressive.
If mkiocccentry encounters an error, the program will exit and the xz
-compressed tarball will NOT be generated: this is a feature, not a bug!
If you encounter a bug with the
-mkiocccentry toolkit
-PLEASE run the bug_report.sh script to help us out here!
While you don’t have to install the
-mkiocccentry toolkit,
-if you don’t, in order to run a tool outside the repo directory
-you will have to specify mkiocccentry(1) command line options to locate required tools
-such as chkentry(1) (mkiocccentry -C chkentry ..), txzchk(1) (mkiocccentry -T txzchk ..),
-and fnamchk(1) (mkiocccentry -F fnamchk ..).
The mkiocccentry(1) tool will ignore any filename or directory that begins with a period (.).
The mkiocccentry(1) tool will ignore all files that begin with COPYING, COPYRIGHT, and LICENSE, regardless
-of filename case.
The mkiocccentry(1) tool will reject any of the following files if they are found directly under
-the top level directory (topdir):
[0-9][0-9][0-9][0-9]_*.tar.bz2 file globThe files listed in the above list are allowed to exist in sub-directories: just NOT directly under
-the top level directory (topdir).
The mkiocccentry(1) tool evaluates all filenames and directory names in a case
-independent way: thus FOO, Foo, and foo are considered the SAME file
-even if your filesystem doesn’t do the same.
Having two or more filenames that differ only by case WILL lead to problems -because of the previous statement.
-When the mkiocccentry(1) tool ignores a file, that file is NOT included as
-part of your submission.
When the mkiocccentry(1) tool ignores a directory, that directory,
-and everything under that directory is NOT included as part of
-your submission.
The mkiocccentry(1) tool will ignore all symlinks.
Creating a directory directly under the top level directory (topdir)
-that is normally considered to be a regular file, such as a directory
-named Makefile, prog.alt.c, prog.c, remarks.md, try.alt.sh,
-or try.sh is NOT a good idea and will likely cause the
-mkiocccentry(1) tool to abort with a fatal error.
The required Makefile and remarks.md files may NOT be empty. This
-does not mean just 0 bytes but also that it MUST have content, and
-content that is relevant (e.g. a Makefile with just comments is NOT
-allowed). However, with the exception of the Makefile, the mkiocccentry(1)
-tool will ONLY check file size.
If the optional file try.alt.sh, or try.sh exists and is an empty file,
-the mkiocccentry(1) tool will abort with a fatal error.
If the mkiocccentry(1) tool encounters anything that isn’t a file, isn’t a
-directory, and isn’t a symlink (which the tool ignores), the mkiocccentry(1)
-tool to abort with a fatal error.
See
-FAQ on “How do I report bugs in an mkiocccentry tool?”.
See Rule 11 - Legal rule abuse for warnings about ignoring mkiocccentry(1) tool warnings.
See
-FAQ on “What is the fnamchk tool?”.
See -FAQ on “What is mkiocccentry in simple terms?”.
-See -FAQ on “What is the mkiocccentry tool, how do I obtain it and how do I use it”.
-Jump to: top
These guideline are hints and suggestions, NOT IOCCC rules.
While submissions that violate guideline are allowed, submissions that remain within the IOCCC guidelines are preferred.
@@ -898,12 +824,10 @@ an appropriate level of obfuscation. VERY GOOD START to a great submission!Jump to: top
We VERY MUCH LIKE submissions that use an edited variant of the
example Makefile, as described and linked to in the Makefile section,
renamed as Makefile of course. This makes it easier for the IOCCC judges
@@ -1126,8 +1050,7 @@ sort of code will work:
remarks.md file: it is a required file for a reason. :-)
Try to be even more creative!
Jump to: top
-The IOCCC submit server, and related services +use the most recent version of the +mkiocccentry toolkit: +submissions that package using older versions of the +mkiocccentry toolkit +are LIKELY to be REJECTED!
+You REALLY SHOULD use the latest mkiocccentry +toolkit to package your submission +as submissions that use an older version are LIKELY to be REJECTED!
+The mkiocccentry(1) tool runs a number of checks by way of these
+mkiocccentry toolkit tools:
Do NOT use txzchk(1) or fnamchk(1) command line options that are labeled
+“for TESTING purposes” in their respective man pages.
Do NOT use fnamchk(1) command line options that are labeled “for TESTING purposes”
+in the fnamchk(1) man page.
Do NOT use chksubmit(1) command line options that are labeled “for the use by the IOCCC judges only”
+in the chksubmit(1) man page.
+Similarly do NOT use chkentry(1) command line options marked “for the use
+by the IOCCC judges only” in the chkentry(1) man page.
To view mkiocccentry toolkit man pages, +while your current directory is the top of the source tree:
+ man soup/man/man1/mkiocccentry.1
+ man soup/man/man1/iocccsize.1
+ man soup/man/man1/txzchk.1
+ man test_ioccc/man/man1/fnamchk.1
+ man soup/man/man1/chksubmit.1
+ man soup/man/man1/chkentry.1
+The above man(1) commands will show the toolkit man pages without having to install them first.
So that you do not have to repeatedly answer all the mkiocccentry(1) questions,
+use mkiocccentry -a answers ... to create a file containing the answers you first give,
+so later enter mkiocccentry -i answers ... to reuse those same answers.
The mkiocccentry -A answers ... does the same thing except that the answers file will be overwritten.
The mkiocccentry -i answers ... will still be required to confirm “Yes/No” questions.
Use mkiocccentry -Y -i answers .. to force a yes answers with great caution
+because it might force a yes answer to something you do NOT want, such as a
+change in your code that violates a detected rule.
+The mkiocccentry -i answers .. will still be required to confirm “Yes/No” questions.
+While mkiocccentry -Y -i answers .. will force yes answers, use with great caution,
+because it might force a yes answer to something you do NOT want.
To help with not having to repeatedly enter a UUID, put your UUID into a file and use
+mkiocccentry -u uuidfile ..., or use mkiocccentry -U UUID ... to give the UUID
+on the command line.
If you wish to test that your submission passes the mkiocccentry(1) tests
+without having to type in answers each time, you can use the -d or -s seed
+option to mkiocccentry for the tool to pseudo-randomly create answers for you.
+For example:
mkiocccentry -d workdir topdir
+Do NOT submit a tarball formed by mkiocccentry -d .. OR by
+mkiocccentry -s seed .. OR by using the test UUID!
The mkiocccentry(1) tool creates an xz(1) compressed v7 format tarball using a tar(1)
+command of the form:
cd workdir/UUID-slot_num && tar --format=v7 -cJf submit.UUID-slot_num.timestamp.txz UUID-slot_num
+In many places the mkiocccentry(1) tool will prompt you to verify what you input, allowing you to
+correct details as you go along.
Pressing the “enter key” at the mkiocccentry(1) tool prompts will allow you
+to proceed with a default, however make sure the default is the CORRECT
+answer.
The mkiocccentry(1) tool will use code from iocccsize(1) which detects a number of
+issues (such as Rule 2 - Size restrictions) that you may ignore,
+however ignoring such issues comes with a SIGNIFICANT level of risk!
Once the tarball is packaged it will
+run txzchk(1), which will also run fnamchk(1), as part of its algorithm.
The use of mkiocccentry -W .... is highly discouraged as this may ignore
+warnings about a problem that may cause your submission to be REJECTED!”
The same can be said of the -Y option, and to a lesser extent -y: the -y
+is mostly for the test script and the -Y is like -y but even more
+aggressive.
If mkiocccentry encounters an error, the program will exit and the xz
+compressed tarball will NOT be generated: this is a feature, not a bug!
If you encounter a bug with the
+mkiocccentry toolkit
+PLEASE run the bug_report.sh script to help us out here!
While you don’t have to install the
+mkiocccentry toolkit,
+if you don’t, in order to run a tool outside the repo directory
+you will have to specify mkiocccentry(1) command line options to locate required tools
+such as chkentry(1) (mkiocccentry -C chkentry ..), txzchk(1) (mkiocccentry -T txzchk ..),
+and fnamchk(1) (mkiocccentry -F fnamchk ..).
The mkiocccentry(1) tool will ignore any filename or directory that begins with a period (.).
The mkiocccentry(1) tool will ignore all files that begin with COPYING, COPYRIGHT, and LICENSE, regardless
+of filename case.
The mkiocccentry(1) tool will reject any of the following files if they are found directly under
+the top level directory (topdir):
[0-9][0-9][0-9][0-9]_*.tar.bz2 file globThe files listed in the above list are allowed to exist in sub-directories: just NOT directly under
+the top level directory (topdir).
The mkiocccentry(1) tool evaluates all filenames and directory names in a case
+independent way: thus FOO, Foo, and foo are considered the SAME file
+even if your filesystem doesn’t do the same.
Having two or more filenames that differ only by case WILL lead to problems +because of the previous statement.
+When the mkiocccentry(1) tool ignores a file, that file is NOT included as
+part of your submission.
When the mkiocccentry(1) tool ignores a directory, that directory,
+and everything under that directory is NOT included as part of
+your submission.
The mkiocccentry(1) tool will ignore all symlinks.
Creating a directory directly under the top level directory (topdir)
+that is normally considered to be a regular file, such as a directory
+named Makefile, prog.alt.c, prog.c, remarks.md, try.alt.sh,
+or try.sh is NOT a good idea and will likely cause the
+mkiocccentry(1) tool to abort with a fatal error.
The required Makefile and remarks.md files may NOT be empty. This
+does not mean just 0 bytes but also that it MUST have content, and
+content that is relevant (e.g. a Makefile with just comments is NOT
+allowed). However, with the exception of the Makefile, the mkiocccentry(1)
+tool will ONLY check file size.
If the optional file try.alt.sh, or try.sh exists and is an empty file,
+the mkiocccentry(1) tool will abort with a fatal error.
If the mkiocccentry(1) tool encounters anything that isn’t a file, isn’t a
+directory, and isn’t a symlink (which the tool ignores), the mkiocccentry(1)
+tool to abort with a fatal error.
See
+FAQ on “How do I report bugs in an mkiocccentry tool?”.
See Rule 11 - Legal rule abuse for warnings about ignoring mkiocccentry(1) tool warnings.
See
+FAQ on “What is the fnamchk tool?”.
See +FAQ on “What is mkiocccentry in simple terms?”.
+See +FAQ on “What is the mkiocccentry tool, how do I obtain it and how do I use it”.
+Jump to: top
+The reason for the times of day are so that key IOCCC events are calculated to be a functional UTC time. :-)
At least 2 of several reasons for selecting the prime, 2503, for @@ -1404,12 +1468,10 @@ it? :-)
With respect to nested functions, try chkentry -b.
Jump to: top
For questions or comments about the contest, see Contacting the IOCCC.
Be SURE to review the IOCCC Rules and Guidelines as they may (and often do) change from year to year.
diff --git a/next/guidelines.md b/next/guidelines.md index 0439b6409..1678e7508 100644 --- a/next/guidelines.md +++ b/next/guidelines.md @@ -13,7 +13,7 @@ writing by [contacting the judges](../contact.html). # Guidelines VersionThese IOCCC Rules are version 29.10 2025-11-30.
+These IOCCC Rules are version 29.11 2025-11-30.
Reminder: be SURE to read the IOCCC guidelines.
The above dates and times may change AT ANY TIME until the contest status is open.
The above timestamps are in “YYYY-MM-DD HH:MM:SS.micros UTC” format.
-See entering the IOCCC.
+See Entering the IOCCC: the bare minimum you need to know.
See FAQ on “How can I comment or make a suggestion on IOCCC rules, guidelines and tools?”.
Your submission MUST be a C program that does NOT #include data files.
Your submission MUST be a C program.
+See the Guidelines for Rule 1 - C program.
iocccsize(1):
The overall maximum size of your prog.c program source MUST NOT
exceed 4993 bytes.
NOTE: by default iocccsize will only report the rule 2b size, unless the
-code surpasses the limit.
See Entering the IOCCC: the bare minimum you need to know.
You MUST register, using a valid email address, in order to submit to the IOCCC. You may register while the contest is pending or open.
A few days after registering, you’ll receive your UUID username and -temporary password, which you MUST change within 14 days. If you -fail to change it in a timely manner, you’ll need to -contact the Judges by email to request a reset.
-It can take a few days to process your registration and for the server to -email your details, therefore make sure to allow yourself ample time to -register and submit your entries; DO NOT WAIT UNTIL THE FINAL DAYS -to register! The judges are NOT responsible for delayed or lost -email or for those who wait until the last minute to try to register!
+temporary password, which you MUST change within 14 days. +See How to register for the IOCCC.
See Entering the IOCCC: the bare minimum you need to know.
-See Rule 8 - Submitting requirements.
See Guidelines for Rule 3 - Register for the IOCCC.
remarks.md file.
You are permitted to use tools to write your code.
-See Rule 16 - Anonymous Judging.
-See Guidelines for Rule 7 - Original Work.
+See Rule 16 - Anonymous Judging, +and +Guidelines for Rule 7 - Original Work.
mkiocccentry(1), AND to check from time to time the
status on the submit server, to see if any tests run by the server failed to
validate your submission.
-Do NOT register more than one account!
See Rule 3 - Registering for the IOCCC, Rule 15 - GNU Makefile, @@ -740,8 +734,7 @@ is rejected.
version, PLEASE indicate that in yourremarks.md file of your non-rule
abusing version so that the Judges don’t think you uploaded a duplicate into a
wrong slot by mistake.
-See Guidelines for Rule 11 - Legal rule -abuse.
+See Guidelines for Rule 11 - Legal rule abuse.