1184 lines
48 KiB
HTML
1184 lines
48 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 winning authors
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../bugs.html" class="sub-item-link">
|
||
Bugs and (mis)features
|
||
</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">
|
||
IOCCC 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/index.html" class="sub-item-link">
|
||
Rules and Guidelines
|
||
</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">
|
||
FAQ
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#submit" class="sub-item-link">
|
||
How to enter the IOCCC
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_an_entry" class="sub-item-link">
|
||
Fixing IOCCC entries
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../faq.html#fix_web_site" class="sub-item-link">
|
||
Fixing the website
|
||
</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">
|
||
About
|
||
</span>
|
||
|
||
<div class="sub-item">
|
||
<div class="outfit-font">
|
||
<a href="../index.html" class="sub-item-link">
|
||
IOCCC Home
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../judges.html" class="sub-item-link">
|
||
The IOCCC Judges
|
||
</a>
|
||
</div>
|
||
|
||
<div class="outfit-font">
|
||
<a href="../contact.html" class="sub-item-link">
|
||
Contacting the IOCCC
|
||
</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="../markdown.html" class="sub-item-link">
|
||
IOCCC markdown guidelines
|
||
</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">
|
||
Authors of winning IOCCC entries
|
||
</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>
|
||
|
||
</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="../status.html">
|
||
Contest status
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../next/index.html">
|
||
Rules and Guidelines
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../news.html">
|
||
IOCCC News
|
||
</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="../faq.html#submit">
|
||
How to enter the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_an_entry">
|
||
Fixing IOCCC entries
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_web_site">
|
||
Fixing the website
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../faq.html#fix_author">
|
||
Fixing author info
|
||
</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">
|
||
IOCCC Home
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../judges.html">
|
||
The IOCCC Judges
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../contact.html">
|
||
Contacting the IOCCC
|
||
</a>
|
||
|
||
<a class="mobile-submenu-item" href="../thanks-for-help.html">
|
||
Thanks for the help
|
||
</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%2Fioccc-src.github.io%2Ftemp-test-ioccc%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.closed.hdr -->
|
||
<h1 id="warning-these-rules-are-out-of-date">WARNING: These rules are OUT OF DATE</h1>
|
||
<p>These rules are a <strong>VERY TENTATIVE proposal</strong> for the next IOCCC
|
||
and are <strong>VERY LIKELY</strong> to be updated before the next IOCCC.
|
||
They are are provided as a <strong>VERY TENTATIVE</strong> hint at <strong>what
|
||
MIGHT</strong> be used in the next IOCCC. In some cases they might
|
||
even be a copy of the rules from the previous IOCCC.</p>
|
||
<p>See our <a href="../faq.html#feedback">FAQ about providing feedback</a> as well
|
||
as our <a href="../faq.html#question">FAQ about asking questions</a> about
|
||
these rules.</p>
|
||
<h1 id="the-ioccc-is-closed">The IOCCC is closed</h1>
|
||
<p>The IOCCC is <strong>NOT</strong> accepting new submissions at this time. See the
|
||
<a href="../years.html">IOCCC winning entries page</a> for the entries that have won the
|
||
IOCCC in the past.</p>
|
||
<p>Watch both <a href="../status.html">the IOCCC status page</a> and the
|
||
<a href="https://fosstodon.org/@ioccc"><span class="citation" data-cites="IOCCC">@IOCCC</span> mastodon feed</a> for information about
|
||
future IOCCC openings.</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>
|
||
<!-- END: the next line ends content from: inc/rules.closed.hdr -->
|
||
<!-- This is the last line modified by the tool: bin/gen-status.sh -->
|
||
<h1 id="th-international-obfuscated-c-code-contest-official-rules">28th International Obfuscated C Code Contest Official Rules</h1>
|
||
<p class="leftbar">
|
||
Copyright © 2024 Leonid A. Broukhis and Landon Curt Noll.
|
||
</p>
|
||
<p>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 <a href="../contact.html">contacting the judges</a>.</p>
|
||
<div id="rules_version">
|
||
<h2 id="ioccc-rules-version">IOCCC Rules version</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.5 2024-07-08</strong>.
|
||
</p>
|
||
<p><strong>IMPORTANT</strong>: Be sure to read the <a href="guidelines.html">IOCCC guidelines</a>.</p>
|
||
<div id="change_marks">
|
||
<h3 id="change-marks">Change marks</h3>
|
||
</div>
|
||
<p class="leftbar">
|
||
<strong>← Lines that start with this symbol indicate a change from the previous IOCCC</strong>
|
||
</p>
|
||
<p>Most lines (we sometimes make mistakes) that were modified since the previous
|
||
IOCCC start with a solid 4 pixel black left border (or, in the case of a code
|
||
block or blockquote, just a vertical bar).</p>
|
||
<div id="obfuscate">
|
||
<h1 id="obfuscate-defined">Obfuscate defined:</h1>
|
||
</div>
|
||
<p>tr.v. -cated, -cating, -cates.
|
||
<br><br>
|
||
<strong>1a.</strong> To render obscure.<br>
|
||
<strong>1b.</strong> To darken.
|
||
<br><br>
|
||
<strong>2.</strong> To confuse: his emotions obfuscated his judgment.<br>
|
||
[LLat. obfuscare, to darken : ob(intensive) + Lat. fuscare,<br>
|
||
to darken < fuscus, dark.] -obfuscation n. obfuscatory adj.</p>
|
||
<div id="goals">
|
||
<h1 id="goals-of-the-contest">Goals of the Contest</h1>
|
||
</div>
|
||
<p>The goals of the IOCCC:</p>
|
||
<ul>
|
||
<li>To write the most Obscure/Obfuscated C program within the <a href="rules.html">IOCCC rules</a>.</li>
|
||
<li>To show the importance of programming style, in an ironic way.</li>
|
||
<li>To stress C compilers with unusual code.</li>
|
||
<li>To illustrate some of the subtleties of the C language.</li>
|
||
<li>To provide a safe forum for poor C code. :-)</li>
|
||
</ul>
|
||
<div id="dates">
|
||
<h1 id="important-ioccc-dates">Important IOCCC dates</h1>
|
||
</div>
|
||
<p class="leftbar">
|
||
This IOCCC runs from <strong>2024-MMM-DD HH:MM:SS UTC</strong> to <strong>202x-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||
<strong>XXX - date/time is TBD - XXX</strong>
|
||
</p>
|
||
<p class="leftbar">
|
||
Until the start of this IOCCC, these <a href="rules.html">IOCCC rules</a>,
|
||
<a href="guidelines.html">IOCCC guidelines</a> and the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||
toolkit</a> should be considered
|
||
provisional <strong>BETA</strong> versions and <strong>may be adjusted <em>AT ANY TIME</em></strong>.
|
||
</p>
|
||
<p>When the IOCCC is open, the submission URL is:
|
||
<a href="https://submit.ioccc.org">https://submit.ioccc.org</a>; at all other
|
||
times that link is likely to be unresponsive.</p>
|
||
<p>Please check the <a href="../faq.html#submit">How to enter FAQ</a>
|
||
for <strong>important information</strong> on how to submit to the IOCCC.</p>
|
||
<p class="leftbar">
|
||
The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||
<strong>XXX - date/time is TBD - XXX</strong>
|
||
</p>
|
||
<p>Please wait to submit your entries until after that time.</p>
|
||
<p>The official <a href="rules.html">IOCCC rules</a> and <a href="guidelines.html">IOCCC guidelines</a> will be
|
||
available on the <a href="../index.html">official IOCCC website</a> on or slightly before
|
||
the start of this IOCCC. The <code>mkiocccentry</code> toolkit may be obtained at any time
|
||
at the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.</p>
|
||
<p><strong>Please recheck on or after the start of this IOCCC to be sure you
|
||
are using the correct versions of these items <em>before using the IOCCC
|
||
submission URL</em></strong>.</p>
|
||
<div id="rules">
|
||
<h1 id="ioccc-rules">IOCCC RULES</h1>
|
||
</div>
|
||
<p>To help us with the volume of submissions, we ask that you follow these rules:</p>
|
||
<div id="rule0">
|
||
<h2 id="rule-0">Rule 0</h2>
|
||
</div>
|
||
<p>We need a <a href="#rule0">rule 0</a>. :-)</p>
|
||
<div id="rule1">
|
||
<h2 id="rule-1">Rule 1</h2>
|
||
</div>
|
||
<p>Your submission must be a complete program.</p>
|
||
<div id="rule2">
|
||
<h2 id="rule-2">Rule 2</h2>
|
||
</div>
|
||
<p>The size rule requires your submission to satisfy <strong>BOTH</strong> <a href="#rule2a">Rule 2a</a> and <a href="#rule2b">Rule 2b</a>:</p>
|
||
<div id="rule2a">
|
||
<h2 id="rule-2a">Rule 2a</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
The size of your program source <strong>should not exceed 4993 bytes</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
If you use the most recently released official IOCCC submission
|
||
packaging tool (hereby referred to as <code>mkiocccentry(1)</code>), which we <strong>STRONGLY
|
||
recommend you do</strong> (see also <a href="#rule17">Rule 17</a>), then the <code>mkiocccentry(1)</code>
|
||
tool will warn you if there appears to be a <a href="#rule2a">Rule 2a</a> violation.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2a">Rule 2a</a> warning.
|
||
Overriding a <a href="#rule2a">Rule 2a</a> warning carries a <strong>fair amount of risk that your submission
|
||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||
ahead of time if you plan to override the <a href="#rule2a">Rule 2a</a> warning.
|
||
</p>
|
||
<p class="leftbar">
|
||
If you do override the <a href="#rule2a">Rule 2a</a> warning from the
|
||
<code>mkiocccentry(1)</code> tool, or otherwise plan to violate <a href="#rule2a">Rule 2a</a>, then
|
||
you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong> of why you are doing so in your
|
||
<code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file your
|
||
submission may still be rejected</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
You may check your code prior to submission by giving the filename
|
||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||
</p>
|
||
<pre><code> ./iocccsize prog.c</code></pre>
|
||
<div id="rule2b">
|
||
<h2 id="rule-2b">Rule 2b</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
When the filename of your program source is given as a command line argument to the latest version
|
||
of the official IOCCC size tool (hereby referred to as <code>iocccsize(1)</code>), the
|
||
value printed <strong>should NOT exceed <em>2503</em></strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The source to <code>iocccsize(1)</code> may be found in the
|
||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
If you use the <code>mkiocccentry(1)</code> tool, which we <strong>STRONGLY recommend
|
||
you do</strong> (again, see also <a href="#rule17">Rule 17</a>),
|
||
then <code>mkiocccentry(1)</code> will invoke <code>iocccsize(1)</code> before packaging your submission.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>mkiocccentry(1)</code> tool will give you the option of overriding the <a href="#rule2b">Rule 2b</a> warning.
|
||
Overriding a <a href="#rule2b">Rule 2b</a> warning carries a <strong>fair amount of risk that your submission
|
||
will be rejected</strong>. Be sure to consult the <a href="guidelines.html">IOCCC guidelines</a>
|
||
ahead of time if you plan to override the <a href="#rule2b">Rule 2b</a> warning.
|
||
</p>
|
||
<p class="leftbar">
|
||
If you do override the <a href="#rule2b">Rule 2b</a> warning from the <code>mkiocccentry(1)</code> tool,
|
||
or otherwise plan to violate <a href="#rule2b">Rule 2a</a>, then you <strong>MUST CLEARLY EXPLAIN THE RATIONALE</strong>
|
||
of why you are doing so in your <code>remarks.md</code> file. <strong><em>Even if you do</em> explain this in your <code>remarks.md</code> file
|
||
your submission may still be rejected</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
You may check your code prior to submission by giving the filename
|
||
as a command like argument to the <code>iocccsize(1)</code> tool. For example:
|
||
</p>
|
||
<pre><code> ./iocccsize prog.c</code></pre>
|
||
<div id="rule3">
|
||
<h2 id="rule-3">Rule 3</h2>
|
||
</div>
|
||
<p>Submissions should be performed using the instructions outlined at:
|
||
the <a href="../faq.html#submit">How to enter FAQ</a>.</p>
|
||
<p>To submit to an open IOCCC, you must use the <a href="https://submit.ioccc.org/">IOCCC submit
|
||
server</a>. Unless the IOCCC is open, that link will
|
||
likely be unresponsive.</p>
|
||
<p class="leftbar">
|
||
The submit URL should be active on or slightly before <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||
<strong>XXX - date/time is TBD - XXX</strong>
|
||
</p>
|
||
<p><strong>Please wait to submit</strong> your entries until after that time.</p>
|
||
<div id="rule4">
|
||
<h2 id="rule-4">Rule 4</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
If your submission is selected as a winner, it may be modified in order
|
||
to fit into the structure of the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
For example, your submission’s <code>Makefile</code> might be modified.
|
||
</p>
|
||
<p class="leftbar">
|
||
Your source code will be the file <code>prog.c</code>. The compiled binary
|
||
will be called <code>prog</code>. If you submission requires different filenames,
|
||
then modify your submission’s <code>Makefile</code> to <strong>COPY</strong> (<strong>NOT</strong> move)
|
||
the files accordingly.
|
||
</p>
|
||
<p class="leftbar">
|
||
See also <a href="#rule5">Rule 5</a>, <a href="#rule18">Rule 18</a> and <a href="#rule21">Rule 21</a>.
|
||
</p>
|
||
<div id="rule5">
|
||
<h2 id="rule-5">Rule 5</h2>
|
||
</div>
|
||
<p>Your submission <strong>MUST</strong> not modify the content or filename of any part of your
|
||
original submission including, but not limited to <code>prog.c</code>, the <code>Makefile</code>
|
||
(that we create from your how to build instructions), as well as any data
|
||
files you submit.</p>
|
||
<p>If you submission wishes to modify such content, it <strong>MUST</strong> first copy the
|
||
file to a new filename and then modify that copy.</p>
|
||
<div id="rule6">
|
||
<h2 id="rule-6">Rule 6</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
I am not a rule, I am a <code>free(void *human);</code> ‼️
|
||
</p>
|
||
<p class="leftbar">
|
||
<code>while (!(ioccc(rule(you(are(number(6)))))) {</code><br>
|
||
<code>ha_ha_ha();</code><br>
|
||
<code>}</code>
|
||
</p>
|
||
<div id="rule7">
|
||
<h2 id="rule-7">Rule 7</h2>
|
||
</div>
|
||
<p>The obfuscated C program must be an original work that you own.</p>
|
||
<p>You (the author(s)) must own the contents of your submission OR
|
||
you must have permission from the owner(s) to submit their content
|
||
under the following license:</p>
|
||
<p class="leftbar">
|
||
<strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong>
|
||
</p>
|
||
<p>If you submit any content that is owned by others, you <strong>MUST
|
||
detail that ownership</strong> (i.e., who owns what) <strong><em>AND</em> document the
|
||
permission you obtained</strong>.</p>
|
||
<p>Please note that the IOCCC size tool is <strong>NOT</strong> an original work.</p>
|
||
<div id="rule8">
|
||
<h2 id="rule-8">Rule 8</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
Entries must be received prior to the end of this IOCCC which is <strong>2024-MMM-DD HH:MM:SS UTC</strong>.<br>
|
||
<strong>XXX - date/time is TBD - XXX</strong>
|
||
</p>
|
||
<p>A confirmation of submission will be sent to the submitting email address
|
||
before the close of the contest.</p>
|
||
<div id="rule9">
|
||
<h2 id="rule-9">Rule 9</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
Each person may submit up to and including <strong>10.000000</strong> (ten) entries per contest.
|
||
</p>
|
||
<p><strong>Each submission <em>must be submitted separately</em></strong>.</p>
|
||
<div id="rule10">
|
||
<h2 id="rule-10">Rule 10</h2>
|
||
</div>
|
||
<p>Entries requiring human interaction to be initially compiled <strong>are not
|
||
permitted</strong>. However, see the <a href="guidelines.html">guidelines</a>.</p>
|
||
<div id="rule11">
|
||
<h2 id="rule-11">Rule 11</h2>
|
||
</div>
|
||
<p>Programs that require special privileges (<code>setuid(2)</code>, <code>setgid(2)</code>,
|
||
super-user, special owner, special group, etc.) are still <strong>HIGHLY
|
||
DISCOURAGED</strong>. We do not guarantee these functions will behave as
|
||
you expect on our test platforms. If your program needs special
|
||
permissions you <strong>MUST</strong> document this fact, and explain why
|
||
it is needed in your submissions <code>remarks.md</code> file.</p>
|
||
<div id="rule12">
|
||
<h2 id="rule-12">Rule 12</h2>
|
||
</div>
|
||
<p><strong>Legal</strong> abuse of the rules is somewhat encouraged. <strong>A submission that, in
|
||
the opinion of the judges, </strong>violates the rules will be disqualified<strong>.
|
||
Submissions that attempt to abuse the rules </strong>MUST** try to justify why
|
||
their rule abuse is legal, in the <code>remarks.md</code> file.</p>
|
||
<div id="rule13">
|
||
<h2 id="rule-13">Rule 13</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
Any C source that fails to compile because of unescaped octets with
|
||
the high bit set (octet value >= 128) <strong><em>might</em></strong> be rejected.
|
||
</p>
|
||
<div id="rule14">
|
||
<h2 id="rule-14">Rule 14</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
Any C source that fails to compile because of lines with trailing
|
||
control-M’s (i.e., lines with a tailing octet <code>015</code>) <strong><em>might</em></strong> be rejected.
|
||
</p>
|
||
<p>Please do <strong>NOT</strong> put trailing control-M’s on remarks file lines.
|
||
Please check to be sure, before submitting, that you have removed
|
||
any control-M at the end of remark file lines.</p>
|
||
<div id="rule15">
|
||
<h2 id="rule-15">Rule 15</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
In order to register for the IOCCC, you <strong>MUST</strong> have a valid email address.
|
||
</p>
|
||
<p>The judges <strong>are not responsible for delays in email</strong>, please plan
|
||
enough time for one automated exchange of email as part of your
|
||
submission.</p>
|
||
<p class="leftbar">
|
||
See <a href="../faq.html#register">the FAQ on how to register for the IOCCC</a> in the
|
||
<a href="../faq.html">FAQ</a> for details.
|
||
</p>
|
||
<div id="rule16">
|
||
<h2 id="rule-16">Rule 16</h2>
|
||
</div>
|
||
<p>You are <strong>STRONGLY</strong> encouraged to submit <strong>a previously unpublished <em>AND</em>
|
||
original submission</strong>. Submissions that are similar to previous entries are
|
||
discouraged. As we judge anonymously, submissions that have already
|
||
been published may be disqualified.</p>
|
||
<div id="rule17">
|
||
<h2 id="rule-17">Rule 17</h2>
|
||
</div>
|
||
<h3 id="tldr-rule-17---use-mkiocccentry1">TL;DR Rule 17 - Use <code>mkiocccentry(1)</code></h3>
|
||
<p class="leftbar">
|
||
This is a <strong>COMPLEX</strong> rule. <strong>Violating this rule will cause your submission to REJECTED</strong>!
|
||
To help you avoid such a rejection, you are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code> tool,
|
||
based on the latest release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>,
|
||
to form your submission’s xz compressed tarball.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||
contains <strong>IMPORTANT</strong> tools such as:
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
<code>chkentry(1)</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>iocccsize(1)</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>mkiocccentry(1)</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>txzchk(1)</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>fnamchk(1)</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>jparse(1)</code> and <code>jparse(8)</code> (which <code>chkentry(1)</code> uses)
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
The above mentioned tools will help you verify that your submission
|
||
conforms to <a href="#rule17">Rule 17</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Each above mentioned tools has a <code>-h</code> option that provides command
|
||
line help. For additional details, see the tools’ man pages.
|
||
</p>
|
||
<p class="leftbar">
|
||
You do not explicitly need to invoke <code>jparse(1)</code> but the <code>jparse(8)</code>
|
||
library will be used when compiling various tools.
|
||
</p>
|
||
<p class="leftbar">
|
||
Of course you <strong>can</strong> invoke <code>jparse(1)</code> if you wish to validate your own JSON
|
||
data file or some other JSON file.
|
||
</p>
|
||
<h3 id="rule-17---the-complex-details">Rule 17 - The COMPLEX details</h3>
|
||
<p class="leftbar">
|
||
Each submission <strong>MUST</strong> be in the form of a xz compressed tarball.
|
||
The xz compressed tarball filename must be of the form:
|
||
</p>
|
||
<pre><code> ^submit.username-slot_num.[1-9][0-9]{9,}.txz$</code></pre>
|
||
<p class="leftbar">
|
||
… where <em><code>username</code></em> is your IOCCC registration username <strong>in the form of a
|
||
<a href="https://en.wikipedia.org/wiki/Universally_unique_identifier">UUID</a></strong> (see
|
||
<a href="https://datatracker.ietf.org/doc/html/rfc9562">RFC 9562</a> for
|
||
details), and where <em><code>slot_num</code></em> is a single decimal digit integer
|
||
(i.e., >= <code>0</code> and < <code>9</code>).
|
||
</p>
|
||
<p class="leftbar">
|
||
In particular, <em><code>username</code></em> is in the form of:
|
||
<code>xxxxxxxx-xxxx-4xxx-axxx-xxxxxxxxxxxx</code> where <code>x</code> is a hexadecimal digit in the
|
||
range <code>[0-9a-f]</code>. And yes, there is a 4 (UUID version 4) and an <code>a</code> (UUID variant
|
||
1) in there.
|
||
</p>
|
||
<p class="leftbar">
|
||
Your xz compressed tarball <strong>MUST</strong> contain, <strong>at a minimum</strong>, the following files:
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
<code>Makefile</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>prog.c</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>remarks.md</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>.info.json</code>
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>.auth.json</code>
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
The <code>.info.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.
|
||
It is generated by the <code>mkiocccentry(1)</code> tool.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>.auth.json</code> must be valid JSON and pass the <code>chkentry(1)</code> tests.
|
||
It is generated by the <code>mkiocccentry(1)</code> tool.
|
||
</p>
|
||
<p class="leftbar">
|
||
You submission may have additional files, however the filenames of those additional files <strong>MUST</strong>:
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
Be less than <strong>100</strong> characters in length.
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Match the regular expression:
|
||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code>
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
The <code>mkiocccentry(1)</code> tool will not package any files that do not meet
|
||
those requirements.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>Makefile</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in <strong><a href="https://www.gnu.org/software/make/manual/make.html">GNU
|
||
Makefile</a></strong> form. See the
|
||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">Makefile.example</a>,
|
||
the <a href="../faq.html#submission_makefiles">FAQ about your submission’s Makefile</a> and
|
||
the <a href="../faq.html#make_compatibility">FAQ about IOCCC Makefile compatibility</a> for help.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>remarks.md</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in markdown form. See also
|
||
<a href="#rule18">Rule 18</a> and our <a href="../faq.html#remarks_md">FAQ about what to put in your
|
||
remarks.md</a> and the <a href="../faq.html#markdown">FAQ about IOCCC best markdown
|
||
practices</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
See also the <a href="https://www.markdownguide.org/basic-syntax">markdown syntax</a> guide
|
||
and the <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The xz compressed tarball file <strong>MUST</strong> be less than or equal <strong>3999971</strong> octets in size.
|
||
</p>
|
||
<p class="leftbar">
|
||
When your submission’s xz compressed tarball is uncompressed,
|
||
the total size of your submission: the sum of the size of the program,
|
||
hints, comments, build and info files <strong>MUST</strong> be less than or equal
|
||
to <strong>28314624</strong> octets (<strong>27651K</strong>) in size.
|
||
</p>
|
||
<p class="leftbar">
|
||
Your submission’s xz compressed tarball <strong>MUST</strong> pass the <code>txzchk(1)</code> test. See
|
||
the <a href="guidelines.html">guidelines</a> for more details on this tool.
|
||
</p>
|
||
<p class="leftbar">
|
||
You are <strong>HIGHLY ENCOURAGED</strong> to use the <code>mkiocccentry(1)</code> tool to form your
|
||
submission’s xz compressed tarball. See the <a href="guidelines.html">guidelines</a> for
|
||
more details on this tool and the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry
|
||
repo</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Your entry may <strong>NOT</strong> have subdirectories. However, you can provide files that
|
||
are in different directories as <code>mkiocccentry(1)</code> will copy them to the work
|
||
directory (see the <a href="guidelines.html">guidelines</a> for more details).
|
||
</p>
|
||
<p class="leftbar">
|
||
Filenames in your entry (that is, not including the files generated by the
|
||
<code>mkiocccentry(1)</code> tool or the tools it or any other tool invokes) <strong>MUST</strong>:
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
Be less than <strong>100</strong> characters in length
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<strong>NOT</strong> have a <strong><code>/</code></strong> (excluding the entry directory that
|
||
the <code>mkiocccentry(1)</code> tool generates).
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<strong>NOT</strong> contain a path component of: <strong><code>.</code></strong> (that is, with
|
||
the exception of files generated by <code>mkiocccentry(1)</code> itself, it must have
|
||
<strong>NO</strong> <strong><code>.</code></strong>).
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<strong>NOT</strong> contain a path component of: <strong><code>..</code></strong> (that is,
|
||
<strong>NO</strong> <strong><code>..</code></strong>).
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
Match the regular expression
|
||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code> (again, excluding files generated by
|
||
<code>mkiocccentry(1)</code>).
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
Additionally, the tarball <strong>MUST</strong> have the following files (generated
|
||
by the <code>mkiocccentry(1)</code> tool):
|
||
</p>
|
||
<ul>
|
||
<li><p class="leftbar">
|
||
<code>.auth.json</code> which contains information about the author or
|
||
authors (that will only be looked at if the submission wins).
|
||
</p></li>
|
||
<li><p class="leftbar">
|
||
<code>.info.json</code> which contains information about the
|
||
entry.
|
||
</p></li>
|
||
</ul>
|
||
<p class="leftbar">
|
||
The <code>txzchk(1)</code> tool will verify these (and other things) for you and
|
||
the <code>chkentry(1)</code> tool will do additional checks on the contents of the
|
||
<code>.auth.json</code> and <code>.info.json</code> files including JSON validity. If these checks
|
||
fail it is an error and <code>mkiocccentry(1)</code> will fail. In this case it is very
|
||
<strong>possibly</strong> a bug; please <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it at the mkiocccentry issues
|
||
page</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
The tarball filename <strong>MUST</strong> pass <code>fnamchk(1)</code>; the tool <code>txzchk(1)</code>
|
||
will run <code>fnamchk(1)</code> as part of its algorithm. If you use <code>mkiocccentry(1)</code>
|
||
there should be no problem but if you were to package things manually it is
|
||
possible there could be a problem and this is a big risk.
|
||
</p>
|
||
<p class="leftbar">
|
||
The <code>fnamchk(1)</code>, which <code>txzchk(1)</code> executes, will verify that the
|
||
filename is correct.
|
||
</p>
|
||
<p class="leftbar">
|
||
These checks <strong>MUST PASS</strong>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Where <a href="#rule17">Rule 17</a> and the tools from the latest
|
||
release of the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>
|
||
conflict, the <a href="../judges.html">IOCCC Judges</a> will use their best judgment which
|
||
is likely to favor <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a> code.
|
||
</p>
|
||
<p class="leftbar">
|
||
This means you should <strong>MAKE SURE</strong> that you use <code>mkiocccentry(1)</code> to
|
||
package your submission; <code>mkiocccentry(1)</code> will run the above mentioned tools
|
||
(that do not act on the tarball) <strong>before</strong> creating the tarball and after the
|
||
tarball is created it will then verify that the tarball is okay by running
|
||
<code>txzchk(1)</code> on it.
|
||
</p>
|
||
<p class="leftbar">
|
||
<strong>MAKE SURE</strong> you use the correct release of the repository; you should do this
|
||
<strong>AFTER</strong> the contest opens (pull any changes or if you prefer download the
|
||
repository via the download option at GitHub).
|
||
</p>
|
||
<p class="leftbar">
|
||
We recommend that you run <code>make</code> and then install the tools (and man pages) via
|
||
<code>make install</code> (as root or using <code>sudo(1)</code> to help you run these tools from your
|
||
submission’s directory. The <code>make install</code> will install in <code>/usr/local</code>.
|
||
</p>
|
||
<p class="leftbar">
|
||
These tools will link in the <code>jparse(8)</code> library; <code>chkentry(1)</code> uses the parser
|
||
to validate the <a href="https://www.json.org/json-en.html">JSON</a> but the other tools
|
||
use parts of the library as well.
|
||
</p>
|
||
<p class="leftbar">
|
||
If you run into a problem with one or more of these tools, <strong>PLEASE</strong> <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it
|
||
at the mkiocccentry issues
|
||
page</a>,
|
||
<strong>making sure to run <code>bug_report.sh</code></strong>. See the <a href="guidelines.html">guidelines</a>
|
||
for help here and also read <a href="../faq.html#mkiocccentry_bugs">the FAQ about reporting bugs in the mkiocccentry
|
||
repo</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
At the risk of stating the obvious: submissions that violate <a href="#rule17">Rule
|
||
17</a> <strong>will be rejected</strong>, so <strong>be sure</strong> to use the latest release of the
|
||
<a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>, to form and test
|
||
your submission’s xz compressed tarball. Do <strong>NOT</strong> assume you have the most
|
||
recent release without pulling or downloading via GitHub and <strong>make sure</strong> you
|
||
do this <strong>AFTER</strong> the <a href="../status.html">contest status</a> has changed to
|
||
<a href="../status.html#open">open</a>.
|
||
</p>
|
||
<div id="rule18">
|
||
<h2 id="rule-18">Rule 18</h2>
|
||
</div>
|
||
<p>The entirety of your submission must be submitted under the following license:</p>
|
||
<p class="leftbar">
|
||
<strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong>
|
||
</p>
|
||
<p>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
|
||
you <strong>MUST HAVE PERMISSION</strong> from the owner(s) to submit their content.</p>
|
||
<p>You <strong>MUST NOT</strong> submit anything that cannot be submitted under that license.</p>
|
||
<div id="rule19">
|
||
<h2 id="rule-19">Rule 19</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
The <code>remarks.md</code> file, a required non-empty file, must be written in
|
||
markdown format. See the <a href="http://daringfireball.net/projects/markdown/basics">Daring Fireball Markdown:
|
||
Basics</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
We currently use <a href="https://pandoc.org">pandoc</a> to convert markdown to HTML.
|
||
</p>
|
||
<p class="leftbar">
|
||
Please see our <a href="../faq.html#remarks_md">FAQ about what to put in your
|
||
remarks.md</a> and the <a href="../markdown.html">IOCCC markdown
|
||
guidelines</a> for additional markdown guidance.
|
||
</p>
|
||
<div id="rule20">
|
||
<h2 id="rule-20">Rule 20</h2>
|
||
</div>
|
||
<p>The how to build instructions must be in Makefile format. See <a href="../faq.html#make_compatibility">the FAQ about
|
||
make(1) compatibility the IOCCC
|
||
supports</a> for more details.</p>
|
||
<p class="leftbar">
|
||
You are <strong>ENCOURAGED</strong> to use
|
||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">Makefile.example</a>,
|
||
renamed as <code>Makefile</code> of course, for help in constructing your <code>Makefile</code>.
|
||
</p>
|
||
<p>The target of the Makefile must be called <code>prog</code>. The original
|
||
C source file must be called <code>prog.c</code>.</p>
|
||
<p>To invoke the C compiler, use <code>${CC}</code>. To invoke the C preprocessor use
|
||
<code>${CPP}</code>.</p>
|
||
<p>Do <strong>NOT</strong> assume that <code>.</code> (the current directory) is in the <code>$PATH</code>.</p>
|
||
<p class="leftbar">
|
||
Your <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 <strong>ENCOURAGED</strong> to use set <code>SHELL= bash</code> in
|
||
your <code>Makefile</code>.
|
||
</p>
|
||
<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 that conform to the <a href="https://en.wikipedia.org/wiki/Single_UNIX_Specification">Single UNIX
|
||
Specification</a> are
|
||
available in the <code>$PATH</code> search path.
|
||
</p>
|
||
<div id="rule21">
|
||
<h2 id="rule-21">Rule 21</h2>
|
||
</div>
|
||
<p>Your submission <strong>MUST NOT</strong> create or modify files above the current directory
|
||
<em>with the exception of</em> the <code>/tmp</code> and the <code>/var/tmp</code> directories. Your submission
|
||
<strong>MAY</strong> create subdirectories below the current directory, or in <code>/tmp</code>,
|
||
or in <code>/var/tmp</code> provided that <code>.</code> is <strong>NOT</strong> the first octet in any
|
||
directory name or filename you create.</p>
|
||
<div id="rule22">
|
||
<h2 id="rule-22">Rule 22</h2>
|
||
</div>
|
||
<p>Catch 22:</p>
|
||
<p>Your source code, data files, remarks and program output <strong>MUST NOT</strong>
|
||
identify the authors of your code. The judges <strong>STRONGLY PREFER</strong> to
|
||
<strong>NOT</strong> know who is submitting entries to the IOCCC.</p>
|
||
<p>Even if you are a previous IOCCC winner, catch 22 still applies.</p>
|
||
<p>Identifying the author(s) of your submission in an obvious way anywhere
|
||
within your code, data, remarks or program output (unless you are
|
||
<strong>Peter Honeyman</strong> or pretending to be <strong>Peter Honeyman</strong>) will be grounds
|
||
for disqualification of your submission.</p>
|
||
<p>Yes, Virginia, <strong>WE REALLY MEAN IT!</strong></p>
|
||
<div id="rule23">
|
||
<h2 id="rule-23">Rule 23</h2>
|
||
</div>
|
||
<p>This prime rule number is reserved for future use.</p>
|
||
<div id="rule24">
|
||
<h2 id="rule-24">Rule 24</h2>
|
||
</div>
|
||
<p>Even though 24 is not prime, you should still see <a href="#rule23">Rule 23</a>.</p>
|
||
<div id="rule25">
|
||
<h2 id="rule-25">Rule 25</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
The <a href="rules.html">IOCCC rule set</a> needs more than 5^2 rules: see <a href="#rule26">Rule 26</a>.
|
||
</p>
|
||
<div id="rule26">
|
||
<h2 id="rule-26">Rule 26</h2>
|
||
</div>
|
||
<blockquote>
|
||
<p>“The quick brown fox jumps over the lazy dog”.<br>
|
||
“Pack my box with five dozen liquor jugs.”<br>
|
||
“How vexingly quick daft zebras jump!”<br>
|
||
“Sphinx of black quartz, judge my vow.”<br>
|
||
“Waltz, bad nymph, for quick jigs vex.”<br>
|
||
“Mr. Jock, TV quiz PhD, bags few lynx.”<br>
|
||
“abcdefg, hijklmnop, qrstu&v, wxy&z.”</p>
|
||
</blockquote>
|
||
<div id="rule27">
|
||
<h2 id="rule-27">Rule 27</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
Unless otherwise needed, <a href="#rule27">Rule 27</a> is reserved for something cubic. :-)
|
||
</p>
|
||
<div id="rule28">
|
||
<h2 id="rule-28">Rule 28</h2>
|
||
</div>
|
||
<p class="leftbar">
|
||
<a href="#rule28">Rule 28</a> is a perfect way end to the list of <a href="rules.html">IOCCC rules</a>
|
||
as we do <strong>NOT</strong> plan to have <strong>496</strong> rules. :-)
|
||
</p>
|
||
<div id="more-information">
|
||
<div id="information">
|
||
<h1 id="for-more-information">FOR MORE INFORMATION:</h1>
|
||
</div>
|
||
</div>
|
||
<p class="leftbar">
|
||
For questions or comments about the contest, see <a href="../contact.html">Contacting the IOCCC</a>.
|
||
</p>
|
||
<p class="leftbar">
|
||
<strong>Be SURE</strong> to review the <a href="index.html">IOCCC Rules and Guidelines</a> as
|
||
<a href="rules.html">IOCCC rules</a> and the <a href="guidelines.html">IOCCC guidelines</a> may (and
|
||
<strong>often do</strong>) change from year to year.
|
||
</p>
|
||
<p class="leftbar">
|
||
You should be sure you have the current <a href="rules.html">IOCCC rules</a> and
|
||
<a href="guidelines.html">IOCCC guidelines</a> prior to submitting entries.
|
||
</p>
|
||
<p>See the <a href="../news.html">Official IOCCC website news</a> for additional information.</p>
|
||
<p class="leftbar">
|
||
For the updates and breaking IOCCC news, you are encouraged to follow
|
||
the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a> account. See our
|
||
<a href="../faq.html#try_mastodon">FAQ about Mastodon</a> for more information. Please do note that unless
|
||
you are mentioned by us you will <strong>NOT</strong> get a notification from the app <em>so you
|
||
should refresh the page <strong>even if you do follow us</strong></em>.
|
||
</p>
|
||
<p class="leftbar">
|
||
Check out the <a href="https://www.ioccc.org/index.html">Official IOCCC winner website</a> in general.
|
||
</p>
|
||
<p><strong>Leonid A. Broukhis</strong><br>
|
||
<strong>chongo (Landon Curt Noll) <code>/\cc/\</code></strong></p>
|
||
<hr style="width:10%;text-align:left;margin-left:0">
|
||
<p>Jump to: <a href="#">top</a>
|
||
<!-- 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-2024 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-2024 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%2Fioccc-src.github.io%2Ftemp-test-ioccc%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 -->
|