@@ -474,38 +474,50 @@ <h1 id="the-ioccc-is-closed">The IOCCC is closed</h1>
474474<!-- END: the next line ends content from: inc/rules.closed.hdr -->
475475<!-- This is the last line modified by the tool: bin/gen-status.sh -->
476476< h2 id ="th-international-obfuscated-c-code-contest-official-rules "> 29th International Obfuscated C Code Contest Official Rules</ h2 >
477- < p > Copyright © 2024- 2025 Leonid A. Broukhis and Landon Curt Noll.</ p >
477+ < p > Copyright © 2025 Leonid A. Broukhis and Landon Curt Noll.</ p >
478478< p > All Rights Reserved. Permission for personal, education or non-profit use is
479479granted provided this this copyright and notice are included in its entirety
480480and remains unaltered. All other uses < strong > MUST</ strong > receive prior permission in
481481writing by < a href ="../contact.html "> contacting the judges</ a > .</ p >
482482< h2 id ="rules-version "> Rules version</ h2 >
483- < p > These IOCCC Rules are version < strong > 29.02 2025-11-19</ strong > .</ p >
483+ < p > These IOCCC Rules are version < strong > 29.03 2025-11-19</ strong > .</ p >
484484< p > Be sure to read the < a href ="guidelines.html "> IOCCC guidelines</ a > .</ p >
485+ < div id ="rule0 ">
485486< h2 id ="rule-0-dates "> Rule 0 Dates</ h2 >
487+ </ div >
486488< p > This IOCCC runs from ${START_DATE_TIME} UTC to ${CLOSE_DATE_TIME} UTC.</ p >
487489< p > This contest will enter the open state on ${OPEN_DATE_TIME} UTC.</ p >
488490< p > This contest will enter the judging state on ${JUDGMENT_DATE_TIME} UTC.</ p >
489491< p > The above dates are subject to change until the contest is officially open.</ p >
490492< p > < strong > NOTE</ strong > : As of this draft, the above dates are TBD (to be determined).</ p >
493+ < div id ="rule1 ">
491494< h2 id ="rule-1-program "> Rule 1 Program</ h2 >
495+ </ div >
492496< p > Your submission < strong > MUST</ strong > be a C program.</ p >
497+ < div id ="rule2 ">
493498< h2 id ="rule-2-size "> Rule 2 Size</ h2 >
499+ </ div >
494500< p > < code > Rule 2</ code > requires that your submission satisfy < strong > BOTH</ strong >
495501< a href ="rules.html#rule-2a-gross-size "> Rule 2a Gross Size</ a >
496502and
497503< a href ="rules.html#rule-2b-net-size "> Rule 2b Next Size</ a > .
498504During development this can be checked using < code > iocccsize(1)</ code > :</ p >
499505< p > iocccsize prog.c</ p >
506+ < div id ="rule2a ">
500507< h3 id ="rule-2a-gross-size "> Rule 2a Gross Size</ h3 >
508+ </ div >
501509< p > The overall maximum size of your < code > prog.c</ code > program source < strong > MUST NOT</ strong >
502510exceed < strong > 4993</ strong > bytes.</ p >
511+ < div id ="rule2b ">
503512< h3 id ="rule-2b-net-size "> Rule 2b Net Size</ h3 >
513+ </ div >
504514< p > When the filename of your program source (i.e., < code > prog.c</ code > ) is given as a
505515command line argument to the latest version of the official IOCCC size
506516tool (hereby referred to as < code > iocccsize(1)</ code > ), the value printed < strong > MUST
507517NOT</ strong > exceed < strong > 2503</ strong > .</ p >
518+ < div id ="rule3 ">
508519< h2 id ="rule-3-register "> Rule 3 Register</ h2 >
520+ </ div >
509521< p > You < strong > MUST</ strong > register, using a valid email address, in order to submit
510522entries to the IOCCC. You may register while the contest is < strong > pending</ strong > or < strong > open</ strong > .</ p >
511523< p > A few days after registering, you’ll receive your UUID username and
@@ -519,7 +531,9 @@ <h2 id="rule-3-register">Rule 3 Register</h2>
519531email or for those who wait until the last minute to try to register!</ p >
520532< p > See < a href ="../quick-start.html#enter "> Entering the IOCCC: the bare minimum you need to know</ a > .</ p >
521533< p > See < a href ="rules.html#rule-8-submission "> Rule 8 Submission</ a > .</ p >
534+ < div id ="rule4 ">
522535< h2 id ="rule-4-files "> Rule 4 Files</ h2 >
536+ </ div >
523537< p > The submission < strong > MUST</ strong > include at least these files: < code > Makefile</ code > , < code > prog.c</ code > ,
524538< code > remarks.md</ code > ,< code > .info.json</ code > , and < code > .auth.json</ code > . The last two < strong > MUST</ strong > be
525539generated by < code > mkiocccenty(1)</ code > when packing a submission, and < strong > MUST</ strong >
@@ -528,7 +542,7 @@ <h2 id="rule-4-files">Rule 4 Files</h2>
528542have a file size < strong > greater than 0</ strong > .</ p >
529543< p > Your submitted source code < strong > MUST</ strong > be called < code > prog.c</ code > . When the < code > Makefile</ code >
530544compiles your code, the executable (if applicable) < strong > MUST</ strong > be called < code > prog</ code > .
531- The ` < code > Makefile</ code > may compile your source code into other filenames as well.</ p >
545+ The < code > Makefile</ code > may compile your source code into other filenames as well.</ p >
532546< p > As < code > prog</ code > , < code > prog.alt</ code > , < code > prog.alt.o</ code > , < code > prog.o</ code > may be created by your
533547< code > Makefile</ code > , your submission < strong > MUST NOT</ strong > include those files in
534548your top directory, as original content.</ p >
@@ -555,11 +569,13 @@ <h2 id="rule-4-files">Rule 4 Files</h2>
555569< p > The < code > remarks.md</ code > and < code > Makefile</ code > are explained in more detail in the Guidelines.</ p >
556570< p > See < a href ="../markdown.html "> IOCCC markdown guidelines</ a > .</ p >
557571< p > See < a href ="rules.html#rule-17-packaging "> Rule 17 Packaging</ a > .</ p >
572+ < div id ="rule5 ">
558573< h2 id ="rule-5-purity "> Rule 5 Purity</ h2 >
574+ </ div >
559575< p > Your submission < strong > MUST NOT</ strong > modify the filenames or content of any of
560576your original submission, such as < code > prog.c</ code > , < code > Makefile</ code > , or any supplied
561577data files. To modify files, your program can make a copy or you can
562- use the Makefile to setup working copies. Any working copies < strong > MUST</ strong > be
578+ use the < code > Makefile</ code > to setup working copies. Any working copies < strong > MUST</ strong > be
563579cleaned up by the < code > Makefile</ code > < code > clobber</ code > target, so as to restore the
564580directory to its original state.</ p >
565581< p > Your submission < strong > MUST NOT</ strong > create or modify directories and files
@@ -570,13 +586,17 @@ <h2 id="rule-5-purity">Rule 5 Purity</h2>
570586original form, including the removal of any created files and directories.</ p >
571587< p > Your code should be able to run under a
572588< a href ="https://pubs.opengroup.org/onlinepubs/9799919799/ "> SUS environment</ a > .</ p >
589+ < div id ="rule6 ">
573590< h2 id ="rule-6-free "> Rule 6 Free</ h2 >
591+ </ div >
574592< p > I am < strong > NOT</ strong > a Rule, I am a < code > free(void *human);</ code > ‼️</ p >
575593< div class ="sourceCode " id ="cb1 "> < pre class ="sourceCode c "> < code class ="sourceCode c "> < span id ="cb1-1 "> < a href ="#cb1-1 " aria-hidden ="true " tabindex ="-1 "> </ a > < span class ="cf "> while</ span > < span class ="op "> (!(</ span > ioccc< span class ="op "> (</ span > rule< span class ="op "> (</ span > you< span class ="op "> (</ span > are< span class ="op "> (</ span > number< span class ="op "> (</ span > < span class ="dv "> 6</ span > < span class ="op "> ))))))</ span > < span class ="op "> {</ span > </ span >
576594< span id ="cb1-2 "> < a href ="#cb1-2 " aria-hidden ="true " tabindex ="-1 "> </ a > ha< span class ="op "> ();</ span > ha< span class ="op "> ();</ span > ha< span class ="op "> ();</ span > </ span >
577595< span id ="cb1-3 "> < a href ="#cb1-3 " aria-hidden ="true " tabindex ="-1 "> </ a > < span class ="op "> }</ span > </ span > </ code > </ pre > </ div >
578596< p > See < a href ="rules.html#rule-19-prime "> Rule 19 Prime</ a > .</ p >
597+ < div id ="rule7 ">
579598< h2 id ="rule-7-original-work "> Rule 7 Original Work</ h2 >
599+ </ div >
580600< p > In short: You wrote it, you own it, and its an original work.</ p >
581601< p > You, the author(s), < strong > MUST</ strong > own the contents of your submission, or you < strong > MUST</ strong >
582602have permission from the original owner(s) to its use. If you submit
@@ -593,7 +613,9 @@ <h2 id="rule-7-original-work">Rule 7 Original Work</h2>
593613If you do make use of such tools or services, then we encourage you to
594614describe what tools and how you used those tools, in your < code > remarks.md</ code > file.</ p >
595615< p > See < a href ="rules.html#rule-16-anonymous "> Rule 16 Anonymous</ a > .</ p >
616+ < div id ="rule8 ">
596617< h2 id ="rule-8-submission "> Rule 8 Submission</ h2 >
618+ </ div >
597619< p > The Submit Server will only accept submissions from those who have
598620registered and only while the contest is open.</ p >
599621< p > The Submit Server places a total submission size limit of < strong > 3999971</ strong > bytes.</ p >
@@ -607,14 +629,18 @@ <h2 id="rule-8-submission">Rule 8 Submission</h2>
607629< a href ="rules.html#rule-15-building "> Rule 15 Building</ a > ,
608630and
609631< a href ="rules.html#rule-17-packaging "> Rule 17 Packaging</ a > .</ p >
632+ < div id ="rule9 ">
610633< h2 id ="rule-9-no-hands "> Rule 9 No hands</ h2 >
634+ </ div >
611635< p > Entries requiring human interaction to be initially compiled are < strong > NOT</ strong >
612636permitted. However, see the guidelines. Each entry < strong > MUST</ strong > automated the
613637its build process using < code > bash</ code > , < code > gmake</ code > , < code > gcc</ code > , < code > clang</ code > , under a
614638< a href ="https://pubs.opengroup.org/onlinepubs/9799919799/ "> SUS environment</ a > .</ p >
615639< p > Note references to < code > gmake</ code > can be any GNU Make compatible tool.</ p >
616- < p > See < a href ="rules.html#rule-17-building "> Rule 17 Building</ a > .</ p >
640+ < p > See < a href ="rules.html#rule-15-building "> Rule 15 Building</ a > .</ p >
641+ < div id ="rule10 ">
617642< h2 id ="rule-10-privileges "> Rule 10 Privileges</ h2 >
643+ </ div >
618644< p > Programs that require special privileges (setuid(2), setgid(2),
619645super-user, special owner, special group, etc.) are < strong > HIGHLY DISCOURAGED</ strong > .
620646We do < strong > NOT</ strong > guarantee these functions will behave as you expect on our
@@ -628,7 +654,9 @@ <h2 id="rule-10-privileges">Rule 10 Privileges</h2>
628654< p > See < a href ="rules.html#rule-4-files "> Rule 4 Files</ a > ,
629655and
630656< a href ="rules.html#rule-5-purity "> Rule 5 Purity</ a > .</ p >
657+ < div id ="rule11 ">
631658< h2 id ="rule-11-abuse "> Rule 11 Abuse</ h2 >
659+ </ div >
632660< p > Legal abuse of the rules is somewhat encouraged, but comes with risks.
633661A submission that, in the opinion of the Judges, violates the rules < strong > WILL
634662BE DISQUALIFIED</ strong > . Submissions that plan to abuse the rules < strong > MUST</ strong > justify
@@ -646,9 +674,13 @@ <h2 id="rule-11-abuse">Rule 11 Abuse</h2>
646674version, please indicate that in your < code > remarks.md</ code > file of your non-rule
647675abusing version so that the Judges don’t think you uploaded a duplicate
648676into a wrong slot by mistake.</ p >
677+ < div id ="rule12 ">
649678< h2 id ="rule-12-utf-8 "> Rule 12 UTF-8</ h2 >
679+ </ div >
650680< p > Use of UTF-8 is supported by < code > C89</ code > standard and its updates and so too by the IOCCC.</ p >
681+ < div id ="rule13 ">
651682< h2 id ="rule-13-newlines "> Rule 13 Newlines</ h2 >
683+ </ div >
652684< p > Any C source that fails to compile because lines contain carriage-returns
653685(CTRL+M, < code > \r</ code > ) in particular as part of DOS/Windows style newlines might
654686be rejected. Please do < strong > NOT</ strong > put trailing CTRL+M in < code > prog.c</ code > , < code > Makefile</ code > ,
@@ -661,16 +693,20 @@ <h2 id="rule-13-newlines">Rule 13 Newlines</h2>
661693need to do this, please document that in your < code > remarks.md</ code > file and if
662694your compiler complains about this, document this too and update your
663695< code > Makefile</ code > to account for this.</ p >
696+ < div id ="rule14 ">
664697< h2 id ="rule-14-resubmit "> Rule 14 Resubmit</ h2 >
698+ </ div >
665699< p > Submissions that are substantially similar to previous winning IOCCC
666700entries are discouraged.</ p >
667701< p > You are allowed to resubmit to a later contest, a submission that didn’t
668702win the IOCCC. If you do so, then you would be well advised to try and
669703enhance and improve your submission. If you do resubmit something that
670704didn’t previously win, then you are encouraged to mention this in your
671705< code > remarks.md</ code > file as this sometimes helps.</ p >
706+ < div id ="rule15 ">
672707< h2 id ="rule-15-building "> Rule 15 Building</ h2 >
673- < p > The < code > Makefile</ code > < strong > MUST</ strong > adhere to GNU Make file syntax. Its recommended
708+ </ div >
709+ < p > The < code > Makefile</ code > < strong > MUST</ strong > adhere to GNU Makefile syntax. Its recommended
674710that you copy and rename the < code > Makefile.example</ code > as template. The primary
675711target of the < code > Makefile</ code > < strong > MUST</ strong > be < code > prog</ code > and the source file is < code > prog.c</ code > .
676712The C compiler and preprocessor < strong > MUST</ strong > be invoked using < code > ${CC}</ code > and < code > ${CPP}</ code >
@@ -691,7 +727,9 @@ <h2 id="rule-15-building">Rule 15 Building</h2>
691727GNU long name options < code > --example</ code > or extensions like < code > grep -P</ code > .</ p >
692728< p > Do < strong > NOT</ strong > assume that < code > .</ code > (current directory) is in the < code > $PATH</ code > environment variable.</ p >
693729< p > See < a href ="rules.html#rule-4-files "> Rule 4 Files</ a > .</ p >
730+ < div id ="rule16 ">
694731< h2 id ="rule-16-anonymous "> Rule 16 Anonymous</ h2 >
732+ </ div >
695733< p > Your source code, data files, remarks, and program output < strong > MUST NOT</ strong >
696734identify the author(s) of your code (unless you are < strong > Peter Honeyman</ strong >
697735or pretending to be < strong > Peter Honeyman</ strong > ). In order to be impartial the
@@ -700,7 +738,9 @@ <h2 id="rule-16-anonymous">Rule 16 Anonymous</h2>
700738a past winner, you < strong > MUST NOT</ strong > reveal your identity deliberately or by
701739accident anywhere in your submission. < strong > < em > Failure to comply may result
702740in the submission being disqualified.</ em > </ strong > </ p >
741+ < div id ="rule17 ">
703742< h2 id ="rule-17-packaging "> Rule 17 Packaging</ h2 >
743+ </ div >
704744< p > The files, directories, and paths < strong > MUST</ strong > conform to the limits imposed by
705745< code > mkiocccentry(1)</ code > , including but < strong > NOT</ strong > limited, to their names, count, path
706746length, directory tree depth, and permissions.</ p >
@@ -719,8 +759,8 @@ <h2 id="rule-17-packaging">Rule 17 Packaging</h2>
719759< p > The unpacked submission directory < strong > MUST</ strong > pass the checks performed by the
720760current version of < code > chksubmit(1)</ code > .</ p >
721761< p > The < code > prog.c</ code > file < strong > MUST</ strong > pass the < a href ="rules.html#rule-2-size "> Rule 2 Size</ a >
722- size checks performed by < code > iocccsize(1)</ code > . The < code > Makefile </ code > and < code > remarks.md </ code > files cannot
723- be empty. The < code > .auth.json</ code > and < code > .info.json</ code > files < strong > MUST</ strong > be compatible with what
762+ size checks performed by < code > iocccsize(1)</ code > .</ p >
763+ < p > The < code > .auth.json</ code > and < code > .info.json</ code > files < strong > MUST</ strong > be compatible with what
724764< code > mkiocccentry(1)</ code > generates.</ p >
725765< p > Submissions that package using older versions of the mkiocccentry
726766toolkit to are < strong > HIGHLY LIKELY</ strong > to be < strong > REJECTED</ strong > ! Be sure
@@ -730,12 +770,16 @@ <h2 id="rule-17-packaging">Rule 17 Packaging</h2>
730770< p > In summary: it is best to use < code > mkioccentry(1)</ code > to package your submission,
731771rather than roll-it-by-hand.</ p >
732772< p > See < a href ="rules.html#rule-4-files "> Rule 4 Files</ a > .</ p >
773+ < div id ="rule18 ">
733774< h2 id ="rule-18-license "> Rule 18 License</ h2 >
775+ </ div >
734776< p > The entirety of your submission < strong > MUST</ strong > be submitted under the following license:</ p >
735777< p > < a href ="https://creativecommons.org/licenses/by-sa/4.0/ "> CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</ a > </ p >
736778< p > See < a href ="rules.html#rule-7-original-work "> Rule 7 Original Work</ a > .</ p >
779+ < div id ="rule19 ">
737780< h2 id ="rule-19-prime "> Rule 19 Prime</ h2 >
738- < p > This 19th rule, while prime, is reserved for future abuse. :-)
781+ </ div >
782+ < p > This 19th rule, while prime, is reserved for future abuse 😁.
739783Additional rules, both humorous and otherwise, may be added
740784below this rule in future contests.</ p >
741785< p > See < a href ="rules.html#rule-6-free "> Rule 6 Free</ a > .</ p >
0 commit comments