diff --git a/next/guidelines.html b/next/guidelines.html index dbb8d1a335..58336adc70 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -492,9 +492,9 @@

ABOUT THIS FILE:

guidelines but remain within the rules are allowed. Even so, you are safer if you remain within the IOCCC guidelines.

-

You should read the current IOCCC rules, prior to submitting -entries. The rules are typically published along with the IOCCC -guidelines..

+

You SHOULD read the CURRENT IOCCC rules, prior to submitting +code to the contest. The rules are typically published along with +the IOCCC guidelines.

Jump to: top

WHAT’S NEW THIS IOCCC

@@ -514,7 +514,7 @@

WHAT’S NEW THIS IOCCC

IMPORTANT NOTE: Until the content enters the open state, any or all -of the above dates and times may change! +of the above dates and times may change AT ANY TIME!

The reason for the times of day are so that key IOCCC events are calculated @@ -524,139 +524,200 @@

WHAT’S NEW THIS IOCCC

Until the contest status becomes open, the IOCCC rules, IOCCC guidelines and the tools in the -mkiocccentry repo, should be -considered provisional BETA versions and may be adjusted AT ANY TIME +mkiocccentry repo, SHOULD be +considered provisional BETA versions and may be adjusted AT ANY TIME before the contest status becomes open.

-You MUST register in order to submit your entry to the IOCCC. +You MUST register in order to participate in the IOCCC. You may register while the contest is either pending or open.

See the FAQ on “how to register and submit to the IOCCC” -for instructions on registering and participating in the IOCCC, as the process has changed from previous years! +for instructions on registering and participating in the IOCCC, as the process +has changed from previous years!

-When the contest is open, an -IOCCC judge will email you your submit server -Username and Initial password. This takes some time (maybe even a few days) for an -IOCCC judge to process your registration and email you your -initial login and password. +When the contest is open, an IOCCC +judge will email you your submit +server Username and Initial password. This +takes some time (maybe even a few days) for an IOCCC judge to +process your registration and email you your initial login and password, so be +sure to give yourself enough time.

-Those who register while the contest status is pending -will receive email with their submit server Username and Initial password -from an IOCCC judge shortly after the contest status becomes open. +Those who register while the contest status is +pending will receive email with their submit +server Username and Initial password from an +IOCCC judge shortly after the contest status becomes +open.

Once an IOCCC judge emails you your Username and Initial password, you will have 72 hours to change your submit server initial password. -If you do not change your Initial password in time, you will have to re-register. +If you do not change your Initial password in time, you will have to +re-register. You may NOT upload any submission until you +have changed your Initial password and logged back in!

Because it takes time (maybe even a few days) for an IOCCC judge to process your registration and email you your initial login and password, -you should MAKE SURE you give yourself enough time before the contest closes. +you should MAKE SURE to give yourself enough time before the contest closes. In other words, DO NOT WAIT TO REGISTER UNTIL THE FINAL DAYS! The IOCCC judges are NOT responsible for delayed or lost email, or for those who wait until the last minute to try to register!

-For those who have registered and received by email, their +Once you have registered, and received by email, your submit server Username and Initial password -from an IOCCC judge, you may upload your submission to -the submit server only while the -contest open. +from an IOCCC judge, you may, after changing your initial +password upload your submission to +the submit server, as long as the contest +open. +

+

+The submit server will become active when the +contest is pending. +Until the contest status becomes pending, +the submit server might be offline and/or unresponsive.

The submit server, in accordance with Rule 17, places a limit of 3999971 octets on the size of your upload.

-You are STRONGLY advised to use the mkiocccentry(1) tool +Submissions are uploaded as a single xz compressed tarball. +

+

+To assist in the formation of the xz compressed tarball for submission, use the +mkiocccentry(1) tool as found in the mkiocccentry repo. +

+

+If you wish to test that your submission passes the mkiocccentry(1) tests +without having to put 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. +The -d option is an alias for -s 21701. An example use: +

+
    mkiocccentry -d test_work prog.c Makefile remarks.md
+

+where test_work is the directory which the tarball will be formed. Be aware +that if the directory exists already, you will have to remove it or move it +before this option will work a second time, just like in normal mode. +

+

+Rule 17 has been significantly modified +to account for the new mkiocccentry repo tools. +Thus, you are STRONGLY advised to use the mkiocccentry(1) tool as found in the mkiocccentry repo -to form the file to upload to the submit server. +to form the file to upload to the submit server. Not +doing so puts you at a very big risk of violating Rule 17.

See the -FAQ on “obtaining and compiling the mkiocccentry tools” -for more information about the mkiocccentry(1) tool. +FAQ on “obtaining and compiling the most recent mkiocccentry tools” +and the +FAQ on “how to enter the IOCCC” +as that FAQ has important details on +how to register +as well as +how to upload your submission to the IOCCC.

-While the contest is open, you may modify your previously -uploaded submission by rebuilding your submission with the mkiocccentry(1) tool -and then re-uploading it to the same slot number on the submit server. +While the contest is open, you may modify your +previously uploaded submission by rebuilding your submission with the +mkiocccentry(1) tool and then re-uploading it to the same slot number on the +submit server.

To help you with this, so that you do not have to repeatedly answer all the questions, the mkiocccentry(1) tool has the options -a answers, -A answers -and -i answers, where -a will write to an answers file if it does not -already exist, -A will overwrite the file and -i will read the answers from -the file. +and -i answers, where -a will write to an answers file (if it does not +already exist), -A will overwrite the file and -i will read the answers from +the file. If you use -A, be sure you don’t overwrite another file by accident!

Once the contest enters the judging state, you will -NOT be allowed to upload your submission files. +NOT be allowed to upload your submission files, so do give yourself enough +time.

-The submit server will become active when the contest is open. -Until the contest status becomes open, -the submit server may be offline and/or unresponsive. +Rule 2 (the size rule) refers to the use of the IOCCC size +tool called iocccsize(1).

-The Rule 2a size has increased from 4096 to 4993 bytes. +See the mkiocccentry +repo for the iocccsize(1) tool.

-The Rule 2b size has increased from 2053 to 2503 -bytes. +To further clarify Rule 2, we subdivided it into two parts, +2a and 2b.

-The new default way to compile submissions: -std=gnu17 -O3 -g3 -Wall -Wextra -pedantic. -You are encouraged to use the example Makefile here. For more details and help, -see below in the Makefile section. +The overall size limit (see Rule 2a) on prog.c has been +increased from 4096 to 4993 bytes.

-Submissions are uploaded as a single xz compressed tarball. +The Rule 2a size was changed from +4096 to 4993: a change that keeps the “2b to 2a” size ratio to a +value similar to the 2001-2012 and +2013-2020 IOCCC eras.

-To assist in the formation of the xz compressed tarball for submission, use the -mkiocccentry(1) tool as found in the mkiocccentry repo. +The Rule 2b size has increased from 2053 to 2503 +bytes.

-Rule 17 has been significantly modified -to account for the new mkiocccentry repo tools. +Your submission must satisfy BOTH the maximum size Rule +2a AND the IOCCC size tool Rule 2b.

-If you wish to test that your submission passes the mkiocccentry(1) tests -without having to put 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. -The -d option is an alias for -s 21701. An example use: +The IOCCC size tool imposes a 2nd limit on C code size (see Rule +2a). To check your code against Rule 2:

-
    mkiocccentry -d test_work prog.c Makefile remarks.md
+
    iocccsize prog.c

-where test_work is the directory which the tarball will be formed. Be aware -that if the directory exists already, you will have to remove it or move it -before this option will work a second time, just like in normal mode. +The IOCCC size tool algorithm can be summarized as follows:

+
+

The size tool counts most C reserved words (keyword, secondary, and selected +preprocessor keywords) as 1. The size tool counts all other octets as 1 +excluding ASCII whitespace, and excluding any ‘;’, ‘{’ or ‘}’ followed by +ASCII whitespace, and excluding any ‘;’, ‘{’ or ‘}’ octet immediately +before the end of file.

+
+

ASCII whitespace includes ASCII tab, ASCII space, ASCII newline, +ASCII formfeed, and ASCII carriage return.

-See the -FAQ on “obtaining and compiling the mkiocccentry tools” -and the -FAQ on “how to enter the IOCCC” -as that FAQ has import details on -how to register -as well as -how to upload your submission to the IOCCC. +When ‘;’, ‘{’ or ‘}’ are within a C string, they may still not be +counted by the IOCCC size tool. This is a feature, not a bug! +

+

In cases where the above summary and the algorithm implemented by +the IOCCC size tool source code conflict, the algorithm implemented +by the IOCCC size tool source code is preferred by the judges.

+

+In other words, make sure iocccsize does not flag any issues with your +prog.c.

+

+There are at least 2 other reasons for selecting 2503 as the 2nd limit besides +the fact that 2503 is a prime. These reasons may be searched for and discovered +if you are “Curios!” about 2503. +:-) Moreover, 2053 was the number of the kernel disk pack of one of the judge’s +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 #define C reserved words in an effort +to get around the size limits of Rule 2.

+

Yes Virginia, that is a hint!

Jump to: top

HINTS AND SUGGESTIONS:

-

You are encouraged to examine the winners of previous contests.

+

You are encouraged to examine the winners of previous contests.

Keep in mind that rules change from year to year, so some winning entries might not be valid submissions this year; what was unique and novel one year might be ‘old’ the next year.

@@ -664,7 +725,9 @@

HINTS AND SUGGESTIONS:

a number of tests to a submission:

-We recommend AND encourage you to use the example Makefile here, +We recommend AND encourage you to use the example Makefile, as the starting point for your submission’s required Makefile: