Files
ioccc/next/submit.html
T
Cody Boone Ferguson 97c25ca4f7 Update FAQ, rules/guidelines etc. for #208
This commit also removed some of the 'new marks' in the guidelines and
rules (as they're no longer new) and some that were in the FAQ (which
only happened when they were changed over to the FAQ).

Removed problematic FAQs (per discussion). This required renumbering.

Updated references of chkentry to chksubmit (only a few references to
chkentry remain now - advising contestants to not use it but simply
stating it is for the judges and it is what chksubmit uses).

Added note in guidelines about gotos becoming 'old' (as Landon told me
it is something Leo wanted in the next guidelines thanks to me). Just so
Landon does not forget my C sins. :-)

I have regenerated the html files but the guidelines.html and rules.html
files have not been link-checked as these files will be modified by the
judges a fair amount so there is no point yet. I believe I got
references to nuked FAQs out but it's possible some were missed.

The quick-start.md and next/submit.md (and their html files) were
updated as well to refer to chksubmit instead of chkentry.

It is quite possible some things were missed but this should help move
things closer to getting ready for IOCCC29 in December.
2025-11-17 09:05:30 -08:00

685 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="How to upload your submission to the IOCCC submit server">
<meta name="keywords" content="IOCCC, submit, submission, submit server">
</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/submit.md -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! Do not modify this web page, instead modify the file: next/submit.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: next/submit.md !!! -->
<!-- !!! Do not modify this web page, instead modify the file: next/submit.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>How to upload your submission to the IOCCC submit server</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%2Fsubmit.html">&#x2713;</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/submit.md -->
<p>Use mkiocccentry to rebuild# How to upload your submission to the IOCCC</p>
<p><strong>IMPORTANT NOTE</strong>: The <a href="https://submit.ioccc.org">IOCCC submit server</a>
is only ready for submissions
<strong>ONLY WHEN THE CONTEST IS <a href="../faq.html#open">open</a></strong>.</p>
<p>See <a href="../status.html">current status of the IOCCC</a> for details on the contest status.
<strong>IMPORTANT NOTE</strong>: When the contest is <a href="../faq.html#closed">closed</a>, the
<a href="https://submit.ioccc.org">IOCCC submit server</a>
might be offline and unreachable as a website.</p>
<p>To login, open <a href="https://submit.ioccc.org">https://submit.ioccc.org</a>
in your browser. Fill in your login credentials and click “Login”.</p>
<p><strong>NOTE</strong>: if the contest is NOT open you will see something like this instead:</p>
<blockquote>
<p>The contest is NOT yet open for submissions.<br>
Sorry (tm Canada 🇨🇦), the IOCCC is not yet open.<br>
The IOCCC is scheduled to open at 2025-03-05 23:19:17.131107 UTC.<br></p>
<p>Message(s):<br>
The IOCCC is not yet open for submissions.</p>
</blockquote>
<p>Assuming it is open, and if you’ve not logged in before, you’ll have to change
your password first. See the file <a href="pw-change.html">pw-change.html</a> for more
details. After that you will have to log back in.</p>
<p>Once you’ve logged in, you will see submit slots. Each slot is for one
submission so if you update a submission, make sure you choose the right one so
you do not replace the wrong one!</p>
<p>It will show text and radio buttons for each row (up to 10 numbered <code>0</code> through
<code>9</code>). Here is a text version of the table showing what the first few lines would
look like:</p>
<pre><code> | Select | Slot Information |
| -------| --------------------
| 0: [●] | Status: slot empty |
| 1: [ ] | Status: slot empty |
| 1: [ ] | Status: slot empty |</code></pre>
<p>The <code>●</code> is a ticked radio button whereas the <code>[ ]</code> is an unticked. Tick that to
select that slot.</p>
<p>Then further down the page you’ll see the text along the lines
of:</p>
<blockquote>
<p>IMPORTANT: Upload only XZ compressed tarballs whose filename is:</p>
<p><code>submit.00000000-0000-4000-0000-000000000000-SLOT.TIMESTAMP.txz</code></p>
<p>where <code>SLOT</code> is a slot number, and <code>TIMESTAMP</code> is the build time as a <a href="https://unixtime.org/">Unix
timestamp</a>.</p>
<p>We highly recommend that you use <code>mkiocccentry(1)</code> to create your submit file as
it must pass the <code>txzchk(1)</code> sanity checks, and when the uncompressed tarball is
untarred, the resulting directory must pass <code>chksubmit(1)</code>.</p>
</blockquote>
<p><strong>NOTE</strong>: the <code>00000000-0000-4000-0000-000000000000</code> is your UUID. <strong>MAKE SURE
YOU CHANGE IT TO YOUR UUID</strong>!</p>
<p><strong>NOTE</strong>: the <code>SLOT</code> and <code>TIMESTAMP</code> <strong>in the filename</strong> are generated based on
your input in <code>mkiocccentry(1)</code>.</p>
<p>Now select the slot you need and then scroll down and click the link that says:
<code>Choose File</code>. A file select option in your browser should open up. Browse for
your <strong>XZ compressed tarball</strong> that was <strong>generated by <code>mkiocccentry(1)</code></strong> and
then click whatever button your browser has to upload the file.</p>
<p>You can see the filename of your **XZ compressed tarball<code>that was **generated by</code>mkiocccentry(1)<code>** you're about to upload if you mouseover it and wait a moment; if you have made a mistake in your file selection, you may click the link that says</code>Choose File` again. Fix your mistake by choosing the correct
file in the file selection pop-up in your browser.</p>
<p>Once you’re certain you have selected the correct file, click “Submit”, below
the file selection step.</p>
<p>When it’s uploaded it should say something like:</p>
<blockquote>
<p>• Uploaded file: submit.00000000-0000-4000-0000-000000000000-5.1740838915.txz</p>
</blockquote>
<p>And in the slot it will give you important details like:</p>
<ul>
<li>the status of the submission</li>
<li>the filename, which will be in the correct format, assuming you used
<code>mkiocccentry(1)</code> which is <strong>HIGHLY</strong> recommended so that you do not break <a href="rules.html#rule17">Rule
17</a>!</li>
<li>the file length, which <code>txzchk(1)</code> will also verify (the file itself and the
tarball listing).</li>
<li>the upload date.</li>
<li>the SHA256 hash of the file.</li>
</ul>
<p>Again the <code>00000000-0000-4000-0000-000000000000</code> is your UUID, the <code>SLOT</code> is the
slot number and <code>TIMESTAMP</code> is the build time as a <a href="https://unixtime.org/">Unix
timestamp</a>.</p>
<p>Now if you’re done, log out.</p>
<p>If, on the other hand, you upload a file that is too big you will see something like:</p>
<blockquote>
<p>The file size of N exceeds the maximum size of 3999971.</p>
</blockquote>
<p>And if you try uploading an empty file you’ll instead see:</p>
<blockquote>
<p>The must not be empty.</p>
</blockquote>
<p>And if you see something like:</p>
<blockquote>
<p>Filename for slot: <code>5</code> must match this regular expression: <code>^submit\.00000000-0000-4000-0000-000000000000-5\.[1-9][0-9]{9,}\.txz</code></p>
</blockquote>
<p>You uploaded the wrong filename into a slot.</p>
<p>For example, for the user <code>00000000-0000-4000-0000-000000000000</code>, slot <code>5</code>, a valid filename to upload would be:</p>
<blockquote>
<p>submit.00000000-0000-4000-0000-000000000000-5.1740838915.txz</p>
</blockquote>
<p>where <code>1740838915</code> is a timestamp created by the <code>mkiocccentry(1)</code> tool.</p>
<p>You <strong>MUST</strong> upload a properly named XZ compressed tarball, <strong>MAKING SURE</strong> you
package it with <code>mkiocccentry</code>!</p>
<p>If, however, the slot status shows:</p>
<blockquote>
<p><strong>Status: file successfully uploaded into slot.</strong></p>
</blockquote>
<p>Then you are successfully uploaded a file into the slot.</p>
<p>At this point you may upload another submission file into a different slot, or you’re done, log out.</p>
<p><strong>Please note:</strong> The status page will <strong>NOT</strong> auto-refresh. After you are uploaded a file into a slot, <strong>DO NOT RELOAD</strong>
the page as this may cause your browser to needlessly reload the same file to the same slot.</p>
<p>After you fir finished uploading submissions into slots, please logout.
To see any status updates, you should logout and log back in later.</p>
<h2 id="checking-on-the-status-of-your-submission">Checking on the status of your submission</h2>
<p>You may check on the status of your submission later on, after you logout by logging back in an looking at the slot status.</p>
<p><strong>Please note:</strong> The status page will <strong>NOT</strong> auto-refresh.</p>
<p>When the system begins to process your file (which could be an hour or two later), you might see:</p>
<blockquote>
<p><strong>Status: file fetched. The format test is pending.</strong></p>
</blockquote>
<p>After the format test is complete, if you see an error such as:</p>
<blockquote>
<p><strong>Status: submit file failed the txzchk test! Use mkiocccentry to rebuild and resubmit to this slot.</strong></p>
</blockquote>
<p>Or:</p>
<blockquote>
<p><strong>Status: submit file failed the chksubmit test! Use mkiocccentry to rebuild and resubmit to this slot.</strong></p>
</blockquote>
<p>… or <strong>ANY</strong> other error then you <strong>MUST FIX</strong> your submission, repackage your
tarball with <code>mkiocccentry</code> and upload to the same slot again! If you do not fix
this your submission <strong>WILL BE REJECTED</strong> for violating <a href="rules.html#rule17">Rule
17</a>!</p>
<p>If the format test went well, then you will see:</p>
<blockquote>
<p><strong>Status: submit file received by the IOCCC judges. Passed both txzchk and chksubmit tests.</strong></p>
</blockquote>
<p><strong>IMPORTANT</strong>: this does <strong>NOT</strong> mean that your submission does not violate the
rules or that everything is OK once the tarball is extracted; it simply means
the tests performed by the tools passed. If you find a flaw in a tool and
abuse it and the tests pass then you stand a significant chance of having your
submission rejected for violating <a href="rules.html#rule17">Rule 17</a>, even if the
tests passed.</p>
<p>For details on <code>txzchk</code>, see the
FAQ on “<a href="../faq.html#txzchk">txzchk</a>”.</p>
<p>For details on <code>chksubmit</code>, see the
FAQ on “<a href="../faq.html#chksubmit">chksubmit</a>”.</p>
<p>If you need more information on the two JSON files, see
FAQ on the <a href="../faq.html#info_json">“.info.json file</a>”
and the
FAQ on the “<a href="../faq.html#auth_json">.auth.json file</a>”.</p>
<!--
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/
-->
<!-- AFTER: last line of markdown file: next/submit.md -->
<!-- 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 &copy; 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%2Fsubmit.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 -->