From 5021fa611b73fd3349f4580af578b3b8f74ef7b3 Mon Sep 17 00:00:00 2001
From: Landon Curt Noll
Copyright © 2024-2025 Leonid A. Broukhis and Landon Curt Noll.
+Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.
All Rights Reserved. Permission for personal, education or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses MUST receive prior permission in writing by contacting the judges.
These IOCCC Rules are version 29.02 2025-11-19.
+These IOCCC Rules are version 29.03 2025-11-19.
Be sure to read the IOCCC guidelines.
+This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.
This contest will enter the open state on ${OPEN_DATE_TIME} UTC.
This contest will enter the judging state on ${JUDGMENT_DATE_TIME} UTC.
The above dates are subject to change until the contest is officially open.
NOTE: As of this draft, the above dates are TBD (to be determined).
+Your submission MUST be a C program.
+Rule 2 requires that your submission satisfy BOTH
Rule 2a Gross Size
and
Rule 2b Next Size.
During development this can be checked using iocccsize(1):
iocccsize prog.c
+The overall maximum size of your prog.c program source MUST NOT
exceed 4993 bytes.
When the filename of your program source (i.e., prog.c) is given as a
command line argument to the latest version of the official IOCCC size
tool (hereby referred to as iocccsize(1)), the value printed MUST
NOT exceed 2503.
You MUST register, using a valid email address, in order to submit entries 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 @@ -519,7 +531,9 @@ 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!
See Entering the IOCCC: the bare minimum you need to know.
See Rule 8 Submission.
+The submission MUST include at least these files: Makefile, prog.c,
remarks.md,.info.json, and .auth.json. The last two MUST be
generated by mkiocccenty(1) when packing a submission, and MUST
@@ -528,7 +542,7 @@ pass the chksubmit(1) tests.
Your submitted source code MUST be called prog.c. When the Makefile
compiles your code, the executable (if applicable) MUST be called prog.
-The `Makefile may compile your source code into other filenames as well.
Makefile may compile your source code into other filenames as well.
As prog, prog.alt, prog.alt.o, prog.o may be created by your
Makefile, your submission MUST NOT include those files in
your top directory, as original content.
The remarks.md and Makefile are explained in more detail in the Guidelines.
See IOCCC markdown guidelines.
See Rule 17 Packaging.
+Your submission MUST NOT modify the filenames or content of any of
your original submission, such as prog.c, Makefile, or any supplied
data files. To modify files, your program can make a copy or you can
-use the Makefile to setup working copies. Any working copies MUST be
+use the Makefile to setup working copies. Any working copies MUST be
cleaned up by the Makefile clobber target, so as to restore the
directory to its original state.
Your submission MUST NOT create or modify directories and files
@@ -570,13 +586,17 @@ ABOVE the current directory with the exception of the /tmp and the
original form, including the removal of any created files and directories.
Your code should be able to run under a SUS environment.
+I am NOT a Rule, I am a free(void *human); ‼️
while (!(ioccc(rule(you(are(number(6)))))) {
ha(); ha(); ha();
}See Rule 19 Prime.
+In short: You wrote it, you own it, and its an original work.
You, the author(s), MUST own the contents of your submission, or you MUST
have permission from the original owner(s) to its use. If you submit
@@ -593,7 +613,9 @@ copilot tools, so-called AI services, large language models (LLMs), etc.
If you do make use of such tools or services, then we encourage you to
describe what tools and how you used those tools, in your remarks.md file.
See Rule 16 Anonymous.
+The Submit Server will only accept submissions from those who have registered and only while the contest is open.
The Submit Server places a total submission size limit of 3999971 bytes.
@@ -607,14 +629,18 @@ recommended to usemkiocccentry(1).
Rule 15 Building,
and
Rule 17 Packaging.
+Entries requiring human interaction to be initially compiled are NOT
permitted. However, see the guidelines. Each entry MUST automated the
its build process using bash, gmake, gcc, clang, under a
SUS environment.
Note references to gmake can be any GNU Make compatible tool.
See Rule 17 Building.
+See Rule 15 Building.
+Programs that require special privileges (setuid(2), setgid(2), super-user, special owner, special group, etc.) are HIGHLY DISCOURAGED. We do NOT guarantee these functions will behave as you expect on our @@ -628,7 +654,9 @@ bits are NOT allowed in submissions and those bits will See Rule 4 Files, and Rule 5 Purity.
+Legal abuse of the rules is somewhat encouraged, but comes with risks. A submission that, in the opinion of the Judges, violates the rules WILL BE DISQUALIFIED. Submissions that plan to abuse the rules MUST justify @@ -646,9 +674,13 @@ 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.
+Use of UTF-8 is supported by C89 standard and its updates and so too by the IOCCC.
Any C source that fails to compile because lines contain carriage-returns
(CTRL+M, \r) in particular as part of DOS/Windows style newlines might
be rejected. Please do NOT put trailing CTRL+M in prog.c, Makefile,
@@ -661,7 +693,9 @@ limits, to NOT end source with a newline. If you
need to do this, please document that in your remarks.md file and if
your compiler complains about this, document this too and update your
Makefile to account for this.
Submissions that are substantially similar to previous winning IOCCC entries are discouraged.
You are allowed to resubmit to a later contest, a submission that didn’t
@@ -669,8 +703,10 @@ win the IOCCC. If you do so, then you would be well advised to try and
enhance and improve your submission. If you do resubmit something that
didn’t previously win, then you are encouraged to mention this in your
remarks.md file as this sometimes helps.
The Makefile MUST adhere to GNU Make file syntax. Its recommended
+
The Makefile MUST adhere to GNU Makefile syntax. Its recommended
that you copy and rename the Makefile.example as template. The primary
target of the Makefile MUST be prog and the source file is prog.c.
The C compiler and preprocessor MUST be invoked using ${CC} and ${CPP}
@@ -691,7 +727,9 @@ environments and systems are available in the search
GNU long name options --example or extensions like grep -P.
Do NOT assume that . (current directory) is in the $PATH environment variable.
See Rule 4 Files.
+Your source code, data files, remarks, and program output MUST NOT identify the author(s) of your code (unless you are Peter Honeyman or pretending to be Peter Honeyman). In order to be impartial the @@ -700,7 +738,9 @@ entries to the IOCCC until final selection is made. Even if you are a past winner, you MUST NOT reveal your identity deliberately or by accident anywhere in your submission. Failure to comply may result in the submission being disqualified.
+The files, directories, and paths MUST conform to the limits imposed by
mkiocccentry(1), including but NOT limited, to their names, count, path
length, directory tree depth, and permissions.
-d or -s seed options of mkioccce
The unpacked submission directory MUST pass the checks performed by the
current version of chksubmit(1).
The prog.c file MUST pass the Rule 2 Size
-size checks performed by iocccsize(1). The Makefile and remarks.md files cannot
-be empty. The .auth.json and .info.json files MUST be compatible with what
+size checks performed by iocccsize(1).
+The .auth.json and .info.json files MUST be compatible with what
mkiocccentry(1) generates.
Submissions that package using older versions of the mkiocccentry
toolkit to are HIGHLY LIKELY to be REJECTED! Be sure
@@ -730,12 +770,16 @@ GitHub repo.
In summary: it is best to use mkioccentry(1) to package your submission,
rather than roll-it-by-hand.
See Rule 4 Files.
+
Rule 18 License
+
The entirety of your submission MUST be submitted under the following license:
CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International
See Rule 7 Original Work.
+
Rule 19 Prime
-This 19th rule, while prime, is reserved for future abuse. :-)
+
+This 19th rule, while prime, is reserved for future abuse 😁.
Additional rules, both humorous and otherwise, may be added
below this rule in future contests.
See Rule 6 Free.
diff --git a/next/rules.md b/next/rules.md
index c8f1c02b3..c53329c2e 100644
--- a/next/rules.md
+++ b/next/rules.md
@@ -30,7 +30,7 @@ app from time to time to view IOCCC mastodon updates.
29th International Obfuscated C Code Contest Official Rules
------------------------------------------------------------
-Copyright © 2024-2025 Leonid A. Broukhis and Landon Curt Noll.
+Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.
All Rights Reserved. Permission for personal, education or non-profit use is
granted provided this this copyright and notice are included in its entirety
@@ -41,13 +41,15 @@ writing by [contacting the judges](../contact.html).
Rules version
-------------
-These IOCCC Rules are version **29.02 2025-11-19**.
+These IOCCC Rules are version **29.03 2025-11-19**.
Be sure to read the [IOCCC guidelines](guidelines.html).
+
Rule 0 Dates
------------
+
This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.
@@ -60,14 +62,18 @@ The above dates are subject to change until the contest is officially open.
**NOTE**: As of this draft, the above dates are TBD (to be determined).
+
Rule 1 Program
---------------
+
Your submission **MUST** be a C program.
+
Rule 2 Size
-----------
+
`Rule 2` requires that your submission satisfy **BOTH**
[Rule 2a Gross Size](rules.html#rule-2a-gross-size)
@@ -77,13 +83,17 @@ During development this can be checked using `iocccsize(1)`:
iocccsize prog.c
+
### Rule 2a Gross Size
+
The overall maximum size of your `prog.c` program source **MUST NOT**
exceed **4993** bytes.
+
### Rule 2b Net Size
+
When the filename of your program source (i.e., `prog.c`) is given as a
command line argument to the latest version of the official IOCCC size
@@ -91,8 +101,10 @@ tool (hereby referred to as `iocccsize(1)`), the value printed **MUST
NOT** exceed **2503**.
+
Rule 3 Register
---------------
+
You **MUST** register, using a valid email address, in order to submit
entries to the IOCCC. You may register while the contest is **pending** or **open**.
@@ -113,8 +125,10 @@ See [Entering the IOCCC: the bare minimum you need to know](../quick-start.html#
See [Rule 8 Submission](rules.html#rule-8-submission).
+
Rule 4 Files
------------
+
The submission **MUST** include at least these files: `Makefile`, `prog.c`,
`remarks.md`,`.info.json`, and `.auth.json`. The last two **MUST** be
@@ -166,8 +180,10 @@ See [IOCCC markdown guidelines](../markdown.html).
See [Rule 17 Packaging](rules.html#rule-17-packaging).
+
Rule 5 Purity
-------------
+
Your submission **MUST NOT** modify the filenames or content of any of
your original submission, such as `prog.c`, `Makefile`, or any supplied
@@ -188,8 +204,10 @@ Your code should be able to run under a
[SUS environment](https://pubs.opengroup.org/onlinepubs/9799919799/).
+
Rule 6 Free
-----------
+
I am **NOT** a Rule, I am a `free(void *human);` ‼️
@@ -202,8 +220,10 @@ I am **NOT** a Rule, I am a `free(void *human);` ‼️
See [Rule 19 Prime](rules.html#rule-19-prime).
+
Rule 7 Original Work
--------------------
+
In short: You wrote it, you own it, and its an original work.
@@ -226,8 +246,10 @@ describe what tools and how you used those tools, in your `remarks.md` file.
See [Rule 16 Anonymous](rules.html#rule-16-anonymous).
+
Rule 8 Submission
-----------------
+
The Submit Server will only accept submissions from those who have
registered and only while the contest is open.
@@ -247,8 +269,10 @@ and
[Rule 17 Packaging](rules.html#rule-17-packaging).
+
Rule 9 No hands
----------------
+
Entries requiring human interaction to be initially compiled are **NOT**
permitted. However, see the guidelines. Each entry **MUST** automated the
@@ -260,8 +284,10 @@ Note references to `gmake` can be any GNU Make compatible tool.
See [Rule 15 Building](rules.html#rule-15-building).
+
Rule 10 Privileges
------------------
+
Programs that require special privileges (setuid(2), setgid(2),
super-user, special owner, special group, etc.) are **HIGHLY DISCOURAGED**.
@@ -280,8 +306,10 @@ and
[Rule 5 Purity](rules.html#rule-5-purity).
+
Rule 11 Abuse
-------------
+
Legal abuse of the rules is somewhat encouraged, but comes with risks.
A submission that, in the opinion of the Judges, violates the rules **WILL
@@ -305,14 +333,19 @@ abusing version so that the Judges don't think you uploaded a duplicate
into a wrong slot by mistake.
+
Rule 12 UTF-8
-------------
+
Use of UTF-8 is supported by `C89` standard and its updates and so too by the IOCCC.
+
Rule 13 Newlines
----------------
+
+
Any C source that fails to compile because lines contain carriage-returns
(CTRL+M, `\r`) in particular as part of DOS/Windows style newlines might
be rejected. Please do **NOT** put trailing CTRL+M in `prog.c`, `Makefile`,
@@ -328,8 +361,10 @@ your compiler complains about this, document this too and update your
`Makefile` to account for this.
+
Rule 14 Resubmit
----------------
+
Submissions that are substantially similar to previous winning IOCCC
entries are discouraged.
@@ -341,11 +376,13 @@ didn't previously win, then you are encouraged to mention this in your
`remarks.md` file as this sometimes helps.
+
Rule 15 Building
----------------
+
-The `Makefile` **MUST** adhere to GNU Make file syntax. Its recommended
-that you copy and rename the `Makefile.example` as a template. The primary
+The `Makefile` **MUST** adhere to GNU Makefile syntax. Its recommended
+that you copy and rename the `Makefile.example` as template. The primary
target of the `Makefile` **MUST** be `prog` and the source file is `prog.c`.
The C compiler and preprocessor **MUST** be invoked using `${CC}` and `${CPP}`
macros respectively.
@@ -374,8 +411,10 @@ Do **NOT** assume that `.` (current directory) is in the `$PATH` environment var
See [Rule 4 Files](rules.html#rule-4-files).
+
Rule 16 Anonymous
-----------------
+
Your source code, data files, remarks, and program output **MUST NOT**
identify the author(s) of your code (unless you are **Peter Honeyman**
@@ -387,8 +426,10 @@ accident anywhere in your submission. ***Failure to comply may result
in the submission being disqualified.***
+
Rule 17 Packaging
-----------------
+
The files, directories, and paths **MUST** conform to the limits imposed by
`mkiocccentry(1)`, including but **NOT** limited, to their names, count, path
@@ -413,8 +454,9 @@ The unpacked submission directory **MUST** pass the checks performed by the
current version of `chksubmit(1)`.
The `prog.c` file **MUST** pass the [Rule 2 Size](rules.html#rule-2-size)
-size checks performed by `iocccsize(1)`. The `Makefile` and `remarks.md` files cannot
-be empty nor blank. The `.auth.json` and `.info.json` files **MUST** be compatible with what
+size checks performed by `iocccsize(1)`.
+
+The `.auth.json` and `.info.json` files **MUST** be compatible with what
`mkiocccentry(1)` generates.
Submissions that package using older versions of the mkiocccentry
@@ -429,8 +471,10 @@ rather than roll-it-by-hand.
See [Rule 4 Files](rules.html#rule-4-files).
+
Rule 18 License
---------------
+
The entirety of your submission **MUST** be submitted under the following license:
@@ -439,8 +483,10 @@ The entirety of your submission **MUST** be submitted under the following licens
See [Rule 7 Original Work](rules.html#rule-7-original-work).
+
Rule 19 Prime
-------------
+
This 19th rule, while prime, is reserved for future abuse 😁.
Additional rules, both humorous and otherwise, may be added
@@ -462,5 +508,5 @@ server for discussions about The Rules, questions for the Judges, and
`C` in general.
-Leonid A. Broukhis
+Leonid A. Broukhis
chongo (Landon Curt Noll) /\\cc/\\
diff --git a/sitemap.xml b/sitemap.xml
index 4045d0689..bc88b2af0 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -16870,11 +16870,11 @@
https://www.ioccc.org/next/rules.html
- 2025-11-20T07:40:05+00:00
+ 2025-11-20T21:45:59+00:00
https://www.ioccc.org/next/rules.md
- 2025-11-20T07:40:02+00:00
+ 2025-11-20T21:45:51+00:00
https://www.ioccc.org/next/submit.html
@@ -16938,7 +16938,7 @@
https://www.ioccc.org/status.html
- 2025-11-20T06:38:54+00:00
+ 2025-11-20T21:47:23+00:00
https://www.ioccc.org/status.json