1110 lines
46 KiB
HTML
1110 lines
46 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../ioccc.css">
|
||
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>The International Obfuscated C Code Contest</title>
|
||
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
||
<meta name="description" content="IOCCC Rules">
|
||
<meta name="keywords" content="IOCCC, rules, Rules">
|
||
</head>
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
|
||
<!-- -->
|
||
<!-- This web page was formed via the tool: bin/gen-top-html.sh -->
|
||
<!-- The content of main section of this web page came from: next/rules.md -->
|
||
<!-- -->
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: next/rules.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: next/rules.md !!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: next/rules.md !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
|
||
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/topbar.default.html -->
|
||
|
||
<div class="theader">
|
||
<nav class="topbar">
|
||
<div class="container">
|
||
<div class="logo">
|
||
<a href="../index.html" class="logo-link">
|
||
IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="topbar-items">
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Entries
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../years.html" class="sub-item-link">
|
||
Winning entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../authors.html" class="sub-item-link">
|
||
Winning authors
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../location.html" class="sub-item-link">
|
||
Location of authors
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../bugs.html" class="sub-item-link">
|
||
Bugs and (mis)features
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_an_entry" class="sub-item-link">
|
||
Fixing entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_author" class="sub-item-link">
|
||
Updating author info
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
Status
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../news.html" class="sub-item-link">
|
||
News
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../status.html" class="sub-item-link">
|
||
Contest status
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../next/rules.html" class="sub-item-link">
|
||
IOCCC rules
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../next/guidelines.html" class="sub-item-link">
|
||
IOCCC guidelines
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../markdown.html" class="sub-item-link">
|
||
Markdown guidelines
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../SECURITY.html" class="sub-item-link">
|
||
Security policy
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
FAQ
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html" class="sub-item-link">
|
||
Frequently asked questions
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../quick-start.html#enter" class="sub-item-link">
|
||
Enter the IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#compiling" class="sub-item-link">
|
||
Compiling entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#running_entries" class="sub-item-link">
|
||
Running entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#help" class="sub-item-link">
|
||
How to help
|
||
</a>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="item">
|
||
<span class="item-header">
|
||
About
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
|
||
<div class="outfit-font">
|
||
<a href="../index.html" class="sub-item-link">
|
||
Home page
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../social.html" class="sub-item-link">
|
||
IOCCC social media
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../about.html" class="sub-item-link">
|
||
About the IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../judges.html" class="sub-item-link">
|
||
The judges
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../thanks-for-help.html" class="sub-item-link">
|
||
Thanks for the help
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../contact.html" class="sub-item-link">
|
||
Contact us
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<div class="header-mobile-menu">
|
||
<noscript>
|
||
<a href="../nojs-menu.html" class="topbar-js-label">
|
||
Please Enable JavaScript
|
||
</a>
|
||
</noscript>
|
||
|
||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||
<img
|
||
src="../png/hamburger-icon-open.png"
|
||
alt="hamburger style menu icon - open state"
|
||
width=48
|
||
height=48>
|
||
</button>
|
||
|
||
<button id="header-close-menu-button" class="hide-content">
|
||
<img
|
||
src="../png/hamburger-icon-closed.png"
|
||
alt="hamburger style menu icon - closed state"
|
||
width=48
|
||
height=48>
|
||
</button>
|
||
|
||
<div id="mobile-menu-panel" class="hide-content">
|
||
<div class="mobile-menu-container">
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
Entries
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../years.html">
|
||
Winning entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../authors.html">
|
||
Winning authors
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../location.html">
|
||
Location of authors
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../bugs.html">
|
||
Bugs and (mis)features
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_an_entry">
|
||
Fixing entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_author">
|
||
Updating author info
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../thanks-for-help.html">
|
||
Thanks for the help
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
|
||
<div class="mobile-menu-item">
|
||
Status
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../news.html">
|
||
News
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../status.html">
|
||
Contest status
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../next/rules.html">
|
||
IOCCC rules
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../next/guidelines.html">
|
||
IOCCC guidelines
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../markdown.html">
|
||
Markdown guidelines
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../SECURITY.html">
|
||
Security policy
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
FAQ
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html">
|
||
Frequently asked questions
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../quick-start.html#enter">
|
||
Enter the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#compiling">
|
||
Compiling entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#running_entries">
|
||
Running entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#help">
|
||
How to help
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mobile-menu-wrapper">
|
||
<div class="mobile-menu-item">
|
||
About
|
||
</div>
|
||
<div class="mobile-submenu-wrapper">
|
||
|
||
<a class="mobile-submenu-item" href="../index.html">
|
||
Home page
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../social.html">
|
||
IOCCC social media
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../about.html">
|
||
About the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../judges.html">
|
||
The judges
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../contact.html">
|
||
Contact us
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||
|
||
headerOpenMenuButton.addEventListener("click", () => {
|
||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||
headerOpenMenuButton.classList.add("hide-content");
|
||
|
||
headerCloseMenuButton.classList.remove("hide-content");
|
||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||
|
||
mobileMenuPanel.classList.remove("hide-content");
|
||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||
});
|
||
|
||
headerCloseMenuButton.addEventListener("click", () => {
|
||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||
headerCloseMenuButton.classList.add("hide-content");
|
||
|
||
mobileMenuPanel.classList.add("hide-content");
|
||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||
|
||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||
headerOpenMenuButton.classList.remove("hide-content");
|
||
});
|
||
</script>
|
||
|
||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<a href="../2011/zucker/index.html">
|
||
<img src="../png/ioccc.png"
|
||
alt="IOCCC image by Matt Zucker"
|
||
width=300
|
||
height=110>
|
||
</a>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>IOCCC Rules</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/navbar.empty.html -->
|
||
|
||
<div class="navbar">
|
||
<a class="Right" href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.ioccc.org%2Fnext%2Frules.html">✓</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/navbar.empty.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<div class="content" id="content">
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<!-- BEFORE: 1st line of markdown file: next/rules.md -->
|
||
<!-- START: this line starts content from: inc/rules.open.hdr -->
|
||
<h1 id="official-ioccc-rules">Official IOCCC rules</h1>
|
||
<p>These rules are <strong>OFFICIAL</strong>.</p>
|
||
<p>Unless some significant problem turns up (such as a need to delay in
|
||
when the IOCCC will close, or some major bug is discovered) they will
|
||
remain <strong>OFFICIAL</strong> for this IOCCC.</p>
|
||
<p>See our
|
||
FAQ on “<a href="../faq.html#feedback">rules, guidelines, tools feedback</a>”
|
||
as well as our
|
||
FAQ on “<a href="../faq.html#question">about asking questions</a>”
|
||
about these rules. You might also find the FAQ in general useful, especially the
|
||
FAQ on “<a href="../quick-start.html#enter">how to enter the IOCCC</a>”.</p>
|
||
<p><strong>SUGGESTION</strong>: Watch both the <a href="../news.html">IOCCC news</a> and the <a href="https://fosstodon.org/@ioccc">IOCCC
|
||
Mastodon</a> feed for the latest news about
|
||
any <em>mentions</em> changes.</p>
|
||
<p><strong>HINT to mastodon users</strong>: You may wish to refresh the <a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span> mastodon
|
||
feed</a> page and/or mastodon app from time
|
||
to time to view IOCCC mastodon updates.</p>
|
||
<h1 id="the-ioccc-open-for-submissions">The IOCCC open for submissions</h1>
|
||
<p>See “<a href="../quick-start.html#enter">FAQ - How may I enter the IOCCC</a>”
|
||
for information on how to register for the IOCCC, how to create a proper
|
||
bzip2 compressed tarball of your submission, and how to upload your
|
||
bzip2 compressed tarball to the IOCCC submit server.</p>
|
||
<!-- END: the next line ends content from: inc/rules.open.hdr -->
|
||
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
||
<h1 id="th-international-obfuscated-c-code-contest-official-rules">29th International Obfuscated C Code Contest Official Rules</h1>
|
||
<p>Copyright (c) 2025 Leonid A. Broukhis and Landon Curt Noll.</p>
|
||
<p>All Rights Reserved. Permission for personal, education or non-profit use is
|
||
granted provided this copyright and notice are included in its entirety
|
||
and remains unaltered. All other uses <strong>MUST</strong> receive prior permission in
|
||
writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||
<h2 id="rules-version">Rules Version</h2>
|
||
<p>These IOCCC Rules are version <strong>29.15 2025-12-02</strong>.</p>
|
||
<p class="leftbar">
|
||
The <span style="font-size:28px;"><b>|</b></span> symbol
|
||
indicates a <strong>change</strong> from the previous IOCCC.
|
||
</p>
|
||
<p class="leftbar">
|
||
Because the <strong>IOCCC29</strong> rules was a substantial rewrite, only
|
||
<strong>important changes</strong> from <strong>IOCCC28</strong> have been marked.
|
||
</p>
|
||
<p>Reminder: be SURE to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||
<div id="rule0">
|
||
<h2 id="rule-0---dates">Rule 0 - Dates</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
This IOCCC runs from <code>2025-12-03 20:25:12.045045 UTC</code> to <code>2026-03-13 17:19:23.293137 UTC</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
This contest will enter the <a href="../faq.html#pending">pending state</a> on
|
||
<code>2025-12-03 20:25:12.045045 UTC</code>, allowing people to <a href="register.html">register for the
|
||
IOCCC</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
This contest will enter the <a href="../faq.html#open">open state</a> on
|
||
<code>2025-12-15 18:21:24.273033 UTC</code>, allowing people to <a href="submit.html">upload
|
||
submissions</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
This contest will enter the <a href="../faq.html#judging">judging state</a> on
|
||
<code>2026-03-13 17:19:23.293137 UTC</code>, when people will no longer be allowed
|
||
to upload submissions.
|
||
</p>
|
||
<p>The above <strong>dates and times may change <em>AT ANY TIME</em></strong> until the
|
||
<a href="../status.html">contest status</a> is <strong>open</strong>.</p>
|
||
<p class="leftbar">
|
||
The above timestamps are in “<em>YYYY-MM-DD HH:MM:SS.micros UTC</em>” format.
|
||
</p>
|
||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||
know</a>.</p>
|
||
<p>See
|
||
FAQ on “<a href="../faq.html#feedback">How can I comment or make a suggestion on IOCCC rules,
|
||
guidelines and tools?</a>”.</p>
|
||
<div id="rule1">
|
||
<div id="rule1-c">
|
||
<h2 id="rule-1---c-program">Rule 1 - C program</h2>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
Your submission <strong>MUST</strong> be a C program.
|
||
</p>
|
||
<p>See the <a href="guidelines.html#guideline1-c">Guidelines for Rule 1 - C
|
||
program</a>.</p>
|
||
<div id="rule2">
|
||
<div id="rule2-size-restrictions">
|
||
<div id="rule2-size">
|
||
<h2 id="rule-2---size-restrictions">Rule 2 - Size restrictions</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><code>Rule 2</code> requires that your submission satisfy <strong>BOTH</strong> <a href="rules.html#rule2a">Rule 2a
|
||
(Gross Size)</a> and <a href="rules.html#rule2b">Rule 2b (Net
|
||
Size)</a>.</p>
|
||
<p>During development this can be checked using <code>iocccsize(1)</code>:</p>
|
||
<pre><code> iocccsize prog.c</code></pre>
|
||
<p>See the <a href="guidelines.html#guideline2-size">Guidelines for Rule 2 - Size
|
||
restrictions</a>.</p>
|
||
<div id="rule2a">
|
||
<div id="rule2a-gross-size">
|
||
<h3 id="rule-2a---gross-size">Rule 2a - Gross Size</h3>
|
||
</div>
|
||
</div>
|
||
<p>The overall maximum size of your <code>prog.c</code> program source <strong>MUST NOT</strong>
|
||
exceed <strong>4993</strong> bytes.</p>
|
||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||
know</a>.</p>
|
||
<div id="rule2b">
|
||
<div id="rule2b-net-size">
|
||
<h3 id="rule-2b---net-size">Rule 2b - Net Size</h3>
|
||
</div>
|
||
</div>
|
||
<p>Check your source code using the latest official IOCCC size tool,
|
||
<code>iocccsize(1)</code>. The value printed <strong>MUST NOT</strong> exceed <strong>2503</strong>.</p>
|
||
<p>See <a href="#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||
<div id="rule3">
|
||
<div id="rule3-register">
|
||
<h2 id="rule-3---register-for-the-ioccc">Rule 3 - Register for the IOCCC</h2>
|
||
</div>
|
||
</div>
|
||
<p>You <strong>MUST</strong> register, using a valid email address, in order to submit
|
||
to the IOCCC. You may register while the contest is <strong>pending</strong> or
|
||
<strong>open</strong>.</p>
|
||
<p>A few days after registering, you’ll receive your UUID username and
|
||
temporary password, which you <strong>MUST</strong> change within 14 days.</p>
|
||
<p>See <a href="register.html">How to register for the IOCCC</a>.</p>
|
||
<p>See <a href="../quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||
know</a>.</p>
|
||
<p>See <a href="guidelines.html#guideline3-register">Guidelines for Rule 3 - Register for the
|
||
IOCCC</a>.</p>
|
||
<div id="rule4">
|
||
<div id="rule4-required-files">
|
||
<h2 id="rule-4---required-files">Rule 4 - Required files</h2>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
Your submission <strong>MUST</strong> include at least these files: <code>Makefile</code>,
|
||
<code>prog.c</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>, the latter two
|
||
of which are generated by <code>mkiocccentry(1)</code>. See <a href="#rule17-mkiocccentry">Rule 17 - Use
|
||
mkiocccentry</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
At a <strong>minimum</strong> the following requirements apply. Additional
|
||
requirements may be imposed by <code>mkiocccentry(1)</code> updates that have yet
|
||
to be listed below:
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
<code>.info.json</code> and <code>.auth.json</code> <strong>MUST</strong> be generated by
|
||
<code>mkiocccenty(1)</code> when packing a submission.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Before forming the tarball, <code>mkiocccentry(1)</code> will run <code>chksubmit(1)</code> on your
|
||
submission directory and if <strong>ANY</strong> problems are found (with <code>.auth.json</code>,
|
||
<code>.info.json</code> or <strong>ANYTHING</strong> else), your tarball will <strong>NOT</strong> be formed.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
The <code>Makefile</code>, <code>remarks.md</code>,<code>.info.json</code>, and <code>.auth.json</code>
|
||
<strong>MUST</strong> have a file size <strong>greater than 0</strong> and <strong>MUST</strong> have content. Note
|
||
that <code>mkiocccentry(1)</code> will check for file <strong>size</strong> but will <strong>NOT</strong> check for
|
||
content. On the other hand <code>chksubmit(1)</code> will check that the <code>.auth.json</code> and
|
||
<code>.info.json</code> are both valid JSON and are valid according to the IOCCC
|
||
requirements.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Your submitted source code <strong>MUST</strong> be called <code>prog.c</code>. When the
|
||
<code>Makefile</code> compiles your code, the executable (if applicable) <strong>MUST</strong>
|
||
be called <code>prog</code>. The <code>Makefile</code> may compile your source code into
|
||
other filenames as well, if you want.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
As <code>prog</code>, <code>prog.alt</code>, <code>prog.alt.o</code>, <code>prog.o</code> may be created by your
|
||
<code>Makefile</code>, your submission <strong>MUST NOT</strong> include those files in your
|
||
<strong>top</strong> directory.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Your submission may <strong>NOT</strong> have any file that starts with <code>COPYING</code>,
|
||
<code>COPYRIGHT</code>, or <code>LICENSE</code> as those files are reserved by IOCCC.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory:
|
||
<code>prog.orig.c</code>, <code>README.md</code> or <code>index.html</code> as those files are reserved
|
||
by the IOCCC.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Your submission may <strong>NOT</strong> have in the <strong>top</strong> directory any file that matches
|
||
a file glob pattern form <code>[0-9][0-9][0-9][0-9]_*.tar.bz2</code> as those files are
|
||
reserved by IOCCC.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Your submission may <strong>ONLY</strong> contain <strong>regular</strong> files and directories. Other
|
||
file types such as symlinks, sockets etc. are <strong>NOT</strong> allowed.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<strong>All</strong> directories <strong>MUST</strong> have permission mode of <code>0755</code>. All
|
||
files <strong>MUST</strong> have the file mode of <code>0444</code>, <strong>EXCEPT</strong> for files that
|
||
end in <code>.sh</code> which must have a mode of <code>0555</code>.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
All files that end in <code>.md</code> <strong>MUST</strong> be in markdown format.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
All filenames are treated as case insensitive. For example,
|
||
<code>REMARKS.MD</code>, and <code>Remarks.md</code>, and <code>remarks.md</code> are considered by
|
||
<code>mkiocccenty(1)</code> to be the <strong>SAME</strong> file. When preparing a submission
|
||
on a case sensitive filesystem, ensure that the submission will work on
|
||
a case insensitive filesystem.
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
<strong>NOTE</strong>: by ‘top directory’ we mean the directory with <code>prog.c</code>,
|
||
<code>Makefile</code>, <code>remarks.md</code> and the <code>mkiocccentry(1)</code> generated files
|
||
<code>.auth.json</code> and <code>.info.json</code> and <strong>NOT</strong> the <code>topdir</code> arg to
|
||
<code>mkiocccentry(1)</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
<strong>NOTE</strong>: <code>mkiocccentry(1)</code> will reject any directory which has
|
||
prohibited files.
|
||
</p>
|
||
<p>The <code>remarks.md</code> and <code>Makefile</code> are explained in more detail in the
|
||
<a href="guidelines.html">Guidelines</a>.</p>
|
||
<p>See <a href="../markdown.html">IOCCC markdown guidelines</a>.</p>
|
||
<p>See <a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||
<p>See the
|
||
FAQ on “<a href="../faq.html#file_perms">What permissions may my files be and what if I need different
|
||
permissions?</a>”.</p>
|
||
<p>See the
|
||
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission
|
||
Makefile?</a>”.</p>
|
||
<p>See the <a href="guidelines.html#mkiocccentry_toolkit">Guidelines on the mkiocccentry
|
||
toolkit</a>.</p>
|
||
<div id="rule5">
|
||
<div id="rule5-modifying-files">
|
||
<h2 id="rule-5---do-not-modify-submitted-files-filenames-or-parent-directories">Rule 5 - Do NOT modify submitted files, filenames or parent directories</h2>
|
||
</div>
|
||
</div>
|
||
<p>Your submission <strong>MUST NOT</strong> modify the filenames or content of any of
|
||
your original submission, such as <code>prog.c</code>, <code>Makefile</code>, or <strong>ANY</strong>
|
||
other supplied files. To modify files, your program can make a copy or
|
||
you can use the <code>Makefile</code> to setup working copies. Any working copies
|
||
<strong>MUST</strong> be cleaned up by the <code>Makefile</code> <code>clobber</code> target, so as to
|
||
restore the directory to its original state.</p>
|
||
<p>With the exception of the <code>/tmp</code> and the <code>/var/tmp</code> directories,
|
||
assuming the directory name or filename does <strong>NOT</strong> start with a <code>.</code>
|
||
(dot), your submission <strong>MUST NOT</strong> create or modify directories and
|
||
files <strong>ABOVE</strong> the current directory.</p>
|
||
<p>The <code>Makefile</code> <code>clobber</code> target <strong>MUST</strong> restore your submission to its
|
||
original form, including the removal of any created files and
|
||
directories.</p>
|
||
<p class="leftbar">
|
||
Your code should be able to run under a <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS
|
||
environment</a>.
|
||
</p>
|
||
<div id="rule6">
|
||
<div id="rule6-free-rule">
|
||
<h2 id="rule-6---free-rule">Rule 6 - Free Rule</h2>
|
||
</div>
|
||
</div>
|
||
<p>I am <strong>NOT</strong> a Rule, I am a <code>free(void *human);</code> ‼️</p>
|
||
<pre><code> while (!(ioccc(rule(you(are(number(6)))))) {
|
||
ha(); ha(); ha();
|
||
}</code></pre>
|
||
<p>See <a href="rules.html#rule19-prime">Rule 19 - Prime</a>.</p>
|
||
<div id="rule7">
|
||
<div id="rule7-original-work">
|
||
<h2 id="rule-7---original-work">Rule 7 - Original Work</h2>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
You, the author(s), <strong>MUST</strong> own the contents of your submission, <strong>OR</strong>, IF you
|
||
do <strong>NOT</strong> own the work, then you <strong>MUST</strong> have permission from the original
|
||
owner(s) to its use. If you submit <strong>ANY</strong> content that is owned by others, you
|
||
<strong>MUST</strong> detail that ownership, i.e., who owns what, and document in your
|
||
<code>remarks.md</code> the permission you obtained from them.
|
||
</p>
|
||
<p class="leftbar">
|
||
You are permitted to use tools to write your code.
|
||
</p>
|
||
<p>See <a href="rules.html#rule16-anonymous-judging">Rule 16 - Anonymous Judging</a>,
|
||
and
|
||
<a href="guidelines.html#guideline7-original">Guidelines for Rule 7 - Original
|
||
Work</a>.</p>
|
||
<div id="rule8">
|
||
<div id="rule8-submitting-requirements">
|
||
<h2 id="rule-8---submitting-requirements">Rule 8 - Submitting requirements</h2>
|
||
</div>
|
||
</div>
|
||
<p>The submit server will accept submissions <strong>ONLY</strong> from those who have
|
||
registered and <strong>ONLY</strong> while the contest is open and <strong>ONLY</strong> after
|
||
you have changed your initial password.</p>
|
||
<p>The submit server places a total size limit of <strong>3999971</strong> bytes
|
||
<strong>PER</strong> submission.</p>
|
||
<p class="leftbar">
|
||
Each account has ten (<strong>10.000</strong>) submission slots (<strong>0..9)</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Each submission slot should be annotated by the server as to whether it
|
||
was received, processed, malformed, etc. Please take note of any
|
||
errors, rectify, and resubmit.
|
||
</p>
|
||
<p class="leftbar">
|
||
In order to avoid potential packaging errors, it is <strong>highly
|
||
recommended</strong> to use <code>mkiocccentry(1)</code>, <strong>AND</strong> 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.
|
||
</p>
|
||
<p>See
|
||
<a href="rules.html#rule3-register">Rule 3 - Registering for the IOCCC</a>,
|
||
<a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>,
|
||
and
|
||
<a href="rules.html#rule17-mkiocccentry">Rule 17 - Use mkiocccentry</a>.</p>
|
||
<p>See <a href="guidelines.html#guideline8-submitting">Guidelines for Rule 8 - Submitting
|
||
requirements</a>.</p>
|
||
<div id="rule9">
|
||
<div id="rule9-no-interactive">
|
||
<h2 id="rule-9---no-interactive-compiling-allowed">Rule 9 - No interactive compiling allowed</h2>
|
||
</div>
|
||
</div>
|
||
<p>Entries requiring human interaction to be initially compiled are <strong>NOT</strong>
|
||
permitted. However, see the <a href="guidelines.html#guideline9-no-interactive">guidelines on rule
|
||
9</a> as you
|
||
<strong>may</strong> suggest alternative compilation steps to do something fun or
|
||
cute.</p>
|
||
<p>Each entry <strong>MUST</strong> automate the build process using <code>bash</code>, <code>gmake</code>,
|
||
<code>gcc</code> and/or <code>clang</code> and other commonly available tools under an <a href="https://pubs.opengroup.org/onlinepubs/9799919799/">SUS
|
||
environment</a>.</p>
|
||
<p><strong>NOTE</strong>: any reference to <code>gmake(1)</code> can be any GNU Make compatible
|
||
tool.</p>
|
||
<p><strong>NOTE</strong>: it is better to use the <code>${MAKE}</code> variable as then one may
|
||
override the <code>make</code> command.</p>
|
||
<p><strong>NOTE</strong>: it is better to <strong>NOT</strong> modify <code>${CC}</code> in your Makefile as
|
||
this makes your program more portable.</p>
|
||
<p>See <a href="rules.html#rule15-gnu-makefile">Rule 15 - GNU Makefile</a>.</p>
|
||
<p>See <a href="guidelines.html#guideline9-no-interactive">Guidelines for Rule 9 - No interactive compiling
|
||
allowed</a>.</p>
|
||
<div id="rule10">
|
||
<h2 id="rule-10---program-file-permissions">Rule 10 - Program file permissions</h2>
|
||
</div>
|
||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
||
super-user, special owner, special group, etc.) are <strong>HIGHLY
|
||
DISCOURAGED</strong>. We do <strong>NOT</strong> guarantee these functions will behave as
|
||
you expect on our test platforms.</p>
|
||
<p>If your program needs special permissions you <strong>MUST</strong> document this
|
||
fact and explain why it is needed in your submission’s <code>remarks.md</code>
|
||
file, preferably close to the top, because <code>mkiocccentry(1)</code> will
|
||
<strong>NOT</strong> set those modes.</p>
|
||
<p>Furthermore, if you need a supplementary program that you include to
|
||
have these permissions, you will also have to explain this as well,
|
||
because these bits are <strong>NOT</strong> allowed in submissions and those bits
|
||
will <strong>NOT</strong> be copied by <code>mkiocccentry(1)</code> either.</p>
|
||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>,
|
||
and
|
||
<a href="rules.html#rule5-modifying-files">Rule 5 - Do NOT modify files</a>.</p>
|
||
<div id="rule11">
|
||
<div id="rule11-legal-rule-abuse">
|
||
<h2 id="rule-11---legal-rule-abuse">Rule 11 - Legal rule abuse</h2>
|
||
</div>
|
||
</div>
|
||
<p>Legal abuse of the rules is <strong>somewhat</strong> encouraged, but comes with
|
||
risks. A submission that, in the opinion of the Judges, <strong>violates</strong>
|
||
the rules <strong>WILL BE DISQUALIFIED</strong>. Submissions that plan to abuse the
|
||
rules <strong>MUST</strong> justify why their rule abuse is legal (or interesting)
|
||
in the <code>remarks.md</code> file.</p>
|
||
<p>Submission packaging abuse will <strong>NOT</strong> be tolerated and for this reason,
|
||
amongst many other reasons, it is recommended that you use
|
||
<code>mkiocccentry(1)</code>. See also <a href="#rule17-mkiocccentry">Rule 17 - use
|
||
mkiocccentry</a>.</p>
|
||
<p>During development you can check your <code>prog.c</code> size limits using
|
||
<code>iocccsize(1)</code>, e.g., <code>iocccsize -v1 prog.c</code>. Overriding problems
|
||
detected by any of the IOCCC tools risks that the submission will be
|
||
rejected.</p>
|
||
<p>If you do submit a rule abusing or violating submission, then consider
|
||
also submitting an alternate version in a different submission server
|
||
slot that does <strong>NOT</strong> violate the rules in case your rule abuse excuse
|
||
is rejected.</p>
|
||
<p><strong>IMPORTANT</strong>: If you do submit such an alternate non-rule abusing
|
||
version, <strong>PLEASE</strong> indicate that in your <code>remarks.md</code> file of your
|
||
non-rule abusing version so that the Judges don’t think you uploaded a
|
||
duplicate into a wrong slot by mistake.</p>
|
||
<p>See <a href="guidelines.html#guideline11-abuse">Guidelines for Rule 11 - Legal rule
|
||
abuse</a>.</p>
|
||
<div id="rule12">
|
||
<div id="rule12-utf8">
|
||
<h2 id="rule-12---utf-8">Rule 12 - UTF-8</h2>
|
||
</div>
|
||
</div>
|
||
<p>Use of UTF-8 is supported by <code>C11</code> standard and its updates and so too
|
||
by the IOCCC.</p>
|
||
<p>See <a href="guidelines.html#guideline12-utf8">Guidelines for Rule 12 - UTF-8</a>.</p>
|
||
<div id="rule13">
|
||
<div id="rule13-nocr">
|
||
<h2 id="rule-13---no-carriage-returns-in-prog.c">Rule 13 - No carriage returns in prog.c</h2>
|
||
</div>
|
||
</div>
|
||
<p>Any C source that fails to compile because lines contain
|
||
carriage-returns (CTRL+M, <code>\r</code>) in particular as part of DOS/Windows
|
||
style newlines might be rejected. Please do <strong>NOT</strong> put trailing
|
||
CTRL+M in <code>prog.c</code>, <code>Makefile</code>, or <code>remarks.md</code> files, but instead end
|
||
lines with Unix newline (line-feed, CTRL+J, <code>\n</code>).</p>
|
||
<p>You are permitted, in order to try and squeeze your <code>prog.c</code> under a
|
||
<a href="rules.html#rule2a-gross-size">Rule 2a Gross Size</a> and/or <a href="rules.html#rule2b-net-size">Rule 2b Net
|
||
Size</a> limits, to <strong>NOT</strong> end source with a
|
||
newline. If you need to do this, please document that in your
|
||
<code>remarks.md</code> file and if your compiler complains about this, document
|
||
this too and update your <code>Makefile</code> to account for this.</p>
|
||
<p>See <a href="guidelines.html#guideline13-nocr">Guidelines for Rule 13 - No carriage returns in
|
||
prog.c</a>.</p>
|
||
<div id="rule14">
|
||
<h2 id="rule-14---resubmitting-lost-submissions">Rule 14 - Resubmitting lost submissions</h2>
|
||
</div>
|
||
<p>Submissions that are substantially similar to previous winning IOCCC
|
||
entries are discouraged. See the
|
||
FAQ on “<a href="../faq.html#frequent-themes">What types of entries have been frequently submitted to the
|
||
IOCCC?</a>.</p>
|
||
<p>You are allowed to resubmit to a later contest, a submission that
|
||
didn’t win the IOCCC. If you do so, then you would be <strong>WELL ADVISED</strong>
|
||
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 <code>remarks.md</code> file as this <strong>sometimes</strong> helps.</p>
|
||
<div id="rule15">
|
||
<div id="rule15-gnu-makefile">
|
||
<h2 id="rule-15---gnu-makefile">Rule 15 - GNU Makefile</h2>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
The <code>Makefile</code> <strong>MUST</strong> adhere to GNU Makefile syntax. It’s highly
|
||
recommended that you copy the <a href="Makefile.example">Makefile.example</a> as a
|
||
template, renaming it to <code>Makefile</code>. The primary target of the
|
||
<code>Makefile</code> <strong>MUST</strong> be <code>prog</code> and the source file is <code>prog.c</code>. The C
|
||
compiler and preprocessor <strong>MUST</strong> be invoked using <code>${CC}</code> and
|
||
<code>${CPP}</code> macros respectively.
|
||
</p>
|
||
<p>The <code>clobber</code> target <strong>MUST</strong> clean and restore the submission
|
||
directory tree to its original state, such as removing temporary files
|
||
or any modified data files. Don’t assume that <code>git</code> tool chain is
|
||
installed, i.e. do <strong>NOT</strong> expect <code>git clean -f</code> to work. To be clear:
|
||
do <strong>NOT</strong> use <code>git</code> to clean out files as this <strong>WILL</strong> cause problems
|
||
in the winner repo!</p>
|
||
<p class="leftbar">
|
||
The <code>Makefile</code> <strong>MUST</strong> use a syntax that is compatible with <code>bash(1)</code>
|
||
and GNU <code>make(1)</code>. You are encouraged to use <code>SHELL= bash</code> in your
|
||
<code>Makefile</code>; please add a space between the <code>=</code> and the value such as:
|
||
</p>
|
||
<pre><code> SHELL= bash</code></pre>
|
||
<p class="leftbar">
|
||
Assume that commands commonly found in <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||
Specification</a>
|
||
environments and systems are available in the search
|
||
<code>$PATH</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Avoid command options that aren’t part of
|
||
<a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">SUS</a>, such as
|
||
GNU long name options (such as <code>--example</code>) or extensions like <code>grep -P</code>.
|
||
</p>
|
||
<p>Do <strong>NOT</strong> assume that <code>.</code> (current directory) is in the <code>$PATH</code>
|
||
environment variable.</p>
|
||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
||
<p>See
|
||
FAQ on “<a href="../faq.html#makefile_details">What are the detailed recommendations for a submission
|
||
Makefile?</a>”.</p>
|
||
<p>See <a href="guidelines.html#guideline15-gnu-makefile">Guidelines for Rule 15 - GNU
|
||
Makefile</a>.</p>
|
||
<div id="rule16">
|
||
<div id="rule16-anonymous-judging">
|
||
<h2 id="rule-16---anonymous-judging">Rule 16 - Anonymous judging</h2>
|
||
</div>
|
||
</div>
|
||
<p>Your source code, data files, remarks, and program output <strong>MUST NOT</strong>
|
||
identify the author(s) of your code (unless you are <strong>Peter Honeyman</strong>
|
||
or pretending to be <strong>Peter Honeyman</strong>). In order to be impartial the
|
||
<a href="https://www.ioccc.org/judges.html">Judges</a> do <strong>NOT</strong> know who is
|
||
submitting programs to the IOCCC until final selection is made, and
|
||
<strong>only</strong> submissions that won.</p>
|
||
<p>Even if you are a past winner, you <strong>MUST NOT</strong> reveal your identity
|
||
deliberately or by accident anywhere in your submission. <strong><em>Failure to
|
||
comply may result in the submission being disqualified</em></strong>.</p>
|
||
<div id="rule17">
|
||
<div id="rule17-mkiocccentry">
|
||
<h2 id="rule-17---use-mkiocccentry">Rule 17 - Use <code>mkiocccentry</code></h2>
|
||
</div>
|
||
</div>
|
||
<p><strong>TL;DR</strong>: use <code>mkiocccentry(1)</code> to package your submission.</p>
|
||
<p>The files, directories, and paths <strong>MUST</strong> conform to the limits
|
||
imposed by <code>mkiocccentry(1)</code>, including but <strong>NOT</strong> limited to, their
|
||
names, count, path length, directory tree depth, and permissions.</p>
|
||
<p class="leftbar">
|
||
The submission tree may have at most <strong>13</strong> directories and maximum
|
||
directory depths of <strong>4</strong>. The maximum number of files, excluding
|
||
<code>prog.c</code>, <code>remarks.md</code>, <code>Makefile</code>, <code>prog.alt.c</code>, <code>try.sh</code>,
|
||
<code>try.alt.sh</code>, <code>.info.json</code> and <code>.auth.json</code> is <strong>31</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The maximum file-path component is <strong>38</strong> and the maximum
|
||
path length is <strong>60</strong>.
|
||
</p>
|
||
<p>The submission <strong>MUST</strong> be a <code>.txz</code> compressed tarball (i.e., tarball
|
||
compressed by <code>xz(1)</code>) <strong>as constructed by</strong> <code>mkiocccentry(1)</code>, which
|
||
<strong>MUST</strong> be within <strong>[1..3999971]</strong> bytes in size.</p>
|
||
<p>The tarball <strong>MUST</strong> be a <strong>v7 format</strong> tarball, and any supplementary
|
||
tarballs you provide <strong>MUST ALSO</strong> be <strong>v7 format</strong>.</p>
|
||
<p>The sum of all file lengths, after unpacking from the tarball, <strong>MUST</strong>
|
||
be less than <code>27651*1024</code> (<strong>28314624</strong>) bytes.</p>
|
||
<p class="leftbar">
|
||
The submission <strong>MUST</strong> pass all <code>txzchk(1)</code> checks, and the tarball
|
||
filename <strong>MUST</strong> pass all <code>fnamchk(1)</code> checks as well.
|
||
</p>
|
||
<p class="leftbar">
|
||
You may <strong>NOT</strong> submit a tarball created by the <code>-d</code>, <code>-e</code> <strong>OR</strong> by
|
||
the <code>-s seed</code> options of <code>mkiocccentry(1)</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The unpacked submission directory <strong>MUST</strong> pass the checks performed by
|
||
the minimum required version of <code>chksubmit(1)</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Submissions may <strong>NOT</strong> use a <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||
toolkit</a> command line
|
||
options that are labelled as “<strong>for TESTING purposes</strong>”, <strong>OR</strong>
|
||
labelled as “<strong>for the use by the IOCCC judges only</strong>”, in their
|
||
respective man pages.
|
||
</p>
|
||
<p class="leftbar">
|
||
Submissions may <strong>ONLY</strong> use <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||
toolkit</a> command lines that
|
||
confirm to the command’s <code>-h</code> “<em>print help message</em>”, again
|
||
notwithstanding the options for testing and the IOCCC judges.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>prog.c</code> file should pass the <a href="rules.html#rule2-size">Rule 2 - Size
|
||
restrictions</a> checks performed by
|
||
<code>iocccsize(1)</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>.auth.json</code> and <code>.info.json</code> files <strong>MUST</strong> be exactly
|
||
what the minimum required <code>mkiocccentry(1)</code> version generates.
|
||
</p>
|
||
<p class="leftbar">
|
||
Any submission that fails to pass the checks performed by the minimum
|
||
required version of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||
toolkit</a> <strong>WILL be
|
||
rejected</strong>!
|
||
</p>
|
||
<p>See <a href="rules.html#rule4-required-files">Rule 4 - Required files</a>.</p>
|
||
<p>See the
|
||
FAQ on “<a href="../faq.html#mkiocccentry">What is the mkiocccentry tool, how do I obtain it and how do I
|
||
use it?</a>”.</p>
|
||
<p>See the <a href="guidelines.html#guideline17-mkiocccentry">Guidelines for Rule 17 - Use
|
||
mkiocccentry</a>.</p>
|
||
<div id="rule18">
|
||
<h2 id="rule-18---submission-license">Rule 18 - Submission license</h2>
|
||
</div>
|
||
<p>The entirety of your submission <strong>MUST</strong> be submitted under the
|
||
following license:</p>
|
||
<p><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
|
||
International</a>.</p>
|
||
<p>See <a href="rules.html#rule7-original-work">Rule 7 - Original Work</a>.</p>
|
||
<div id="rule19">
|
||
<div id="rule19-prime">
|
||
<h2 id="rule-19---prime">Rule 19 - Prime</h2>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
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.
|
||
</p>
|
||
<p>See <a href="rules.html#rule6-free-rule">Rule 6 - Free Rule</a>.</p>
|
||
<h2 id="further-reading">Further Reading</h2>
|
||
<p>Please read the <a href="guidelines.html">Guidelines</a> next for further
|
||
commentary on these rules.</p>
|
||
<p>Read the
|
||
FAQ on “<a href="https://www.ioccc.org/quick-start.html#enter">Entering the IOCCC: the bare minimum you need to
|
||
know</a>”
|
||
for an overview of how to enter the contest.</p>
|
||
<p>See also the <a href="../faq.html">FAQ</a> in general.</p>
|
||
<p>And now <a href="guidelines.html#fun">for something completely different</a>.</p>
|
||
<p>Consider joining the <a href="https://discord.com/invite/Wa42Qujwnw">IOCCC Discord
|
||
Server</a> for discussions about
|
||
The Rules, questions for the Judges, and <code>C</code> in general.</p>
|
||
<p>Leonid A. Broukhis
|
||
chongo (Landon Curt Noll) /\cc/\
|
||
<!-- AFTER: last line of markdown file: next/rules.md --></p>
|
||
|
||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<!--
|
||
|
||
Copyright © 1984-2025 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<div class="footer">
|
||
|
||
<div id="copyright"><h3>Copyright © 1984-2025 by Landon Curt Noll:
|
||
<a href="https://creativecommons.org/faq/#what-does-some-rights-reserved-mean"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">Some Rights Reserved</a></h3>
|
||
<p>
|
||
This work is <b>licensed by Landon Curt Noll</b> under
|
||
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1"
|
||
target="_blank"
|
||
rel="license noopener noreferrer"
|
||
style="display:inline-block;">CC BY-SA 4.0</a></b>.
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/cc.png"
|
||
alt="cc inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/by.png"
|
||
alt="person inside circle symbol">
|
||
<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;"
|
||
src="../png/sa.png"
|
||
alt="arrow looping back on itself inside circle symbol"><br>
|
||
You should <b>carefully review</b> the
|
||
<b><a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode.en"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">CC BY-SA 4.0 LEGAL CODE</a></b>
|
||
before using the licensed material.<br>
|
||
You may wish to review the
|
||
<b><a href="../license.html"
|
||
target="_blank"
|
||
rel="license noopener noreferrer">highlights of some of the key features and terms</a></b>
|
||
of <b>CC BY-SA 4.0</b>.<br>
|
||
</p>
|
||
</div>
|
||
|
||
<div id="coda"><h3>Coda</h3>
|
||
<p>
|
||
<a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.ioccc.org%2Fnext%2Frules.html" rel="nofollow">Nu HTML check this web page</a><br>
|
||
<a href="#top">Jump to top</a> <a href="#content">Jump to Content</a>
|
||
</p>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|