diff --git a/faq.html b/faq.html index 4d0c1ec84..5b36478a9 100644 --- a/faq.html +++ b/faq.html @@ -388,140 +388,376 @@ -
This is FAQ version 28.0.7 2024-10-17.
-This is FAQ version 28.0.8 2024-10-18.
+mkiocccentry tool and how do I use it?mkiocccentry and its related tools?mkiocccentry tool?fnamchk tool?.auth.json and/or .info.json files?.auth.json file?.info.json file?author handle?author_handle.json file and how are they used?entry_id?.entry.json file and how is it used?try.sh and try.alt.sh scripts and why should I use them?.top, .allyear, .year and .path files?mkiocccentry tool and how do I use it?
+mkiocccentry and its related tools?
+fnamchk tool?
+.auth.json and/or .info.json files?
+.auth.json file?
+.info.json file?
+author handle?
+author_handle.json file and how are they used?
+entry_id?
+.entry.json file and how is it used?
+try.sh and try.alt.sh scripts and why should I use them?
+.top, .allyear, .year and .path files?
+Jump to: top
Jump to: top
+To submit your code to the IOCCC, you MUST follow these steps:
Jump to: top
+To submit your code to the IOCCC, you MUST follow these steps:
Check the current status of the IOCCC see of the IOCCC is open.
You may only register for the IOCCC when the IOCCC is OPEN.
@@ -590,8 +826,10 @@ on how upload your entry to the IOCCC submit server. Once with the proper instructions. Watch the IOCCC news for an announcement of the availability of the IOCCC submit server.Jump to: top
+mkiocccentry tool and how do I use it?mkiocccentry tool and how do I use it?This tool comes from the mkiocccentry repo and it is required that you @@ -635,9 +873,11 @@ be the subdirectory with your submission’s files.
submission as well as author details (that will only be looked at if the submission wins), run some tests and run a number of other tools, as already mentioned and as described below. +mkiocccentry and its related tools?mkiocccentry and its related tools?After you
@@ -650,127 +890,26 @@ at the mkiocccentry repo.
See also the mkiocccentry repo FAQ for more up to date information on downloading, compiling, and related FAQ information.
-Jump to: top
-Yes! The mkiocccentry(1) tool has some options to help write OR read from an
-answers file so you do not have to input the author(s) or the submission
-details (like the abstract, summary etc.), just to change a file.
To write to answers.txt try:
mkiocccentry -a answers.txt ...
-Alternatively, if you wish to overwrite a file, you can use the -A
-flag with the same option argument. Be very careful that you do not accidentally
-overwrite your prog.c or some other important file!
To make use of the answers file, use the -i answers option like:
mkiocccentry -i answers.txt ...
-There are types of entries that are frequently submitted to the IOCCC. -While we do not wish to prevent people from sending -a submission to the IOCCC on a frequently submitted theme, -we do wish to provide a fair warning to those who do.
-IMPORTANT HINT: It is not fatal to send in those types of -entries, it is just HARDER to win with such a submission. A -submission on a frequently submitted theme will have to do something -in a really unique AND interesting way to even make it into the -final judging rounds. It will have to compete with previous IOCCC -winners based on the same theme.
-IMPORTANT HINT: If you really wish send in a submission on a -frequently submitted theme, be sure that it is obfuscated in several -new and novel ways.
-IMPORTANT HINT: Be sure to clearly explain near the beginning
-of your remarks.md file, see the
-FAQ on “remarks.md”,
-why you are submitting an entry based on a frequently
-submitted theme and how compares with previous IOCCC winners
-of the same theme.
While it is possible to win a new IOCCC with one of these -frequently submitted types of entries, level of the competition from -previous IOCCC entries make it more challenging to be successful.
-It is also important to note that the guidelines often -state something along the lines of:
- We tend to dislike programs that: are similar to previous winning entries.
-FAIR WARNING: Be sure to clearly explain near the beginning
-of your remarks.md file, see the
-FAQ on “remarks.md”,
-why you are submitting an entry based on a frequently
-submitted theme and how compares with previous IOCCC winners
-of the same theme.
Your entry must compile with clang or gcc and run under at least one flavor of a UNIX +system that conforms to the SUS, +otherwise known as the The Single UNIX Specification Version 4 +or later SUS.
Jump to: top
+ +We recommend starting with the sample
@@ -793,65 +932,55 @@ your Makefile should copy prog.c into the desired file
make compatible make(1)
command that is compatible with GNU Make version 3.81.
Jump to: top
-While your entry’s source filename, as submitted, must be prog.c, your entry’s Makefile
-may copy prog.c to a different filename as part of the compiling/building process. For example:
# Makefile continues above ...
-
- all: desired_name
-
- desired_name: desired_name.c
- rm -f $@
- cc desired_name.c -o $@
-
- desired_name.c: prog.c
- rm -f $@
- cp -f prog.c $@
-
- clean:
- rm -f desired_name.o
-
- clobber: clean
- rm -f desired_name.c desired_name
-
- # Makefile continues below ...
-We recommend that the make clobber rule remove files that your entry
-creates as part of the compiling/building process.
You may also copy the compiled prog into a different file as part of compiling process.
-For example:
# Makefile continues above ...
-
- all: desired_name
-
- different_name: prog
- rm -f $@
- cp -f prog $@
-
- clean:
- rm -f prog.o
-
- clobber: clean
- rm -f desired_name
-
- # Makefile continues below ...
-Jump to: top
-Your entry must compile with clang or gcc and run under at least one flavor of a UNIX -system that conforms to the SUS, -otherwise known as the The Single UNIX Specification Version 4 -or later SUS.
+First, PLEASE read the IOCCC markdown guidelines.
+Next, while you may put in as much or as little as you wish into your entry’s
+remarks.md file, we do have few important suggestions:
We recommend that you explain how to use your entry. Explain the +command line (if any command line options and arguments are used) +and any input or actions if applicable.
+We highly recommend that you explain why you think your entry is +well obfuscated.
+For those entries that win the IOCCC, we often use much of text from the
+remarks.md file in the Author’s remarks section of the index.html file.
+For this reason, a well written remarks.md file is considered a plus.
While not required, consider adding bit of humor to your remarks.md
+as most people who are not humor impaired, as well as the IOCCC judges
+appreciate the opportunity for a fun read as well as a chuckle or two.
Jump to: top
+The IOCCC judges to welcome feedback on the IOCCC @@ -871,9 +1000,11 @@ have to say, consider adding comments to that particular discussion. Otherwise consider opening a new mkiocccentry discussion.
Jump to: top
+We realise that the IOCCC rules, IOCCC guidelines @@ -918,37 +1049,10 @@ others are wondering about as well!
See also the FAQ on “rules, guidelines, tools feedback”.
Jump to: top
-The IOCCC makes extensive use of markdown.
-For example, we submitting to the IOCCC, we have people
-to submit remarks about entry in markdown format. Every
-winning IOCCC entry uses a README.md markdown file
-as the basis for forming the index.html web page for that entry.
-All generated HTML pages on the Official IOCCC website
-start with some markdown content.
IMPORTANT: Please read the IOCCC markdown best practices guide -as it lists things you should not use in markdown files.
-See the markdown syntax guide. -See also CommonMark Spec.
-Jump to: top
-mkiocccentry tool?As the mkiocccentry toolkit is -crucial in the contest, both for submitters and the judges, if you find a bug -(or you think you find a bug) we would be grateful if you were to report it at -the mkiocccentry issues -page.
-Please see the -FAQ on “reporting bugs and other issues in the mkiocccentry repo” -in the mkiocccentry repo.
-Jump to: top
+.auth.json file?.auth.json file?This file is constructed by the mkiocccentry(1) prior to forming the xz
compressed tarball of your submission. The .auth.json file contains
@@ -1217,8 +1321,10 @@ validate the .auth.json file.
If you wish to verify that your .auth.json file is valid JSON then see the
FAQ on “validating JSON documents”.
Jump to: top
+.info.json file?.info.json file?This file is constructed by the mkiocccentry(1) prior to forming the xz
compressed tarball of your submission. The .info.json file contains
@@ -1652,9 +1758,11 @@ validate the .info.json file.
If you wish to verify that your .info.json file is valid JSON then see the
FAQ on “validating JSON documents”.
Jump to: top
+If you want or need to verify that a JSON document (as a string or file) is
@@ -1683,9 +1791,11 @@ verbosity with the -v option. For instance:
If the tool is not installed then you will obviously have to specify the path of the tool.
Jump to: top
+.auth.json and/or .info.json files?.auth.json and/or .info.json files?If you want to validate the .auth.json or .info.json files you
@@ -1727,70 +1837,247 @@ it will report this as an error. Thus, if you were to package y
submission manually then you would be violating Rule
17.
Jump to: top
+Yes! The mkiocccentry(1) tool has some options to help write OR read from an
+answers file so you do not have to input the author(s) or the submission
+details (like the abstract, summary etc.), just to change a file.
To write to answers.txt try:
mkiocccentry -a answers.txt ...
+Alternatively, if you wish to overwrite a file, you can use the -A
+flag with the same option argument. Be very careful that you do not accidentally
+overwrite your prog.c or some other important file!
To make use of the answers file, use the -i answers option like:
mkiocccentry -i answers.txt ...
+Jump to: top
+While your entry’s source filename, as submitted, must be prog.c, your entry’s Makefile
+may copy prog.c to a different filename as part of the compiling/building process. For example:
# Makefile continues above ...
+
+ all: desired_name
+
+ desired_name: desired_name.c
+ rm -f $@
+ cc desired_name.c -o $@
+
+ desired_name.c: prog.c
+ rm -f $@
+ cp -f prog.c $@
+
+ clean:
+ rm -f desired_name.o
+
+ clobber: clean
+ rm -f desired_name.c desired_name
+
+ # Makefile continues below ...
+We recommend that the make clobber rule remove files that your entry
+creates as part of the compiling/building process.
You may also copy the compiled prog into a different file as part of compiling process.
+For example:
# Makefile continues above ...
+
+ all: desired_name
+
+ different_name: prog
+ rm -f $@
+ cp -f prog $@
+
+ clean:
+ rm -f prog.o
+
+ clobber: clean
+ rm -f desired_name
+
+ # Makefile continues below ...
+Jump to: top
+The IOCCC makes extensive use of markdown.
+For example, we submitting to the IOCCC, we have people
+to submit remarks about entry in markdown format. Every
+winning IOCCC entry uses a README.md markdown file
+as the basis for forming the index.html web page for that entry.
+All generated HTML pages on the Official IOCCC website
+start with some markdown content.
IMPORTANT: Please read the IOCCC markdown best practices guide +as it lists things you should not use in markdown files.
+See the markdown syntax guide. +See also CommonMark Spec.
+Jump to: top
+mkiocccentry tool?As the mkiocccentry toolkit is +crucial in the contest, both for submitters and the judges, if you find a bug +(or you think you find a bug) we would be grateful if you were to report it at +the mkiocccentry issues +page.
+Please see the +FAQ on “reporting bugs and other issues in the mkiocccentry repo” +in the mkiocccentry repo.
+Jump to: top
+Jump to: top
+By tradition, we do not say.
Jump to: top
-First, PLEASE read the IOCCC markdown guidelines.
-Next, while you may put in as much or as little as you wish into your entry’s
-remarks.md file, we do have few important suggestions:
We recommend that you explain how to use your entry. Explain the -command line (if any command line options and arguments are used) -and any input or actions if applicable.
-We highly recommend that you explain why you think your entry is -well obfuscated.
-For those entries that win the IOCCC, we often use much of text from the
-remarks.md file in the Author’s remarks section of the index.html file.
-For this reason, a well written remarks.md file is considered a plus.
While not required, consider adding bit of humor to your remarks.md
-as most people who are not humor impaired, as well as the IOCCC judges
-appreciate the opportunity for a fun read as well as a chuckle or two.
There are types of entries that are frequently submitted to the IOCCC. +While we do not wish to prevent people from sending +a submission to the IOCCC on a frequently submitted theme, +we do wish to provide a fair warning to those who do.
+IMPORTANT HINT: It is not fatal to send in those types of +entries, it is just HARDER to win with such a submission. A +submission on a frequently submitted theme will have to do something +in a really unique AND interesting way to even make it into the +final judging rounds. It will have to compete with previous IOCCC +winners based on the same theme.
+IMPORTANT HINT: If you really wish send in a submission on a +frequently submitted theme, be sure that it is obfuscated in several +new and novel ways.
+IMPORTANT HINT: Be sure to clearly explain near the beginning
+of your remarks.md file, see the
+FAQ on “remarks.md”,
+why you are submitting an entry based on a frequently
+submitted theme and how compares with previous IOCCC winners
+of the same theme.
While it is possible to win a new IOCCC with one of these +frequently submitted types of entries, level of the competition from +previous IOCCC entries make it more challenging to be successful.
+It is also important to note that the guidelines often +state something along the lines of:
+ We tend to dislike programs that: are similar to previous winning entries.
+FAIR WARNING: Be sure to clearly explain near the beginning
+of your remarks.md file, see the
+FAQ on “remarks.md”,
+why you are submitting an entry based on a frequently
+submitted theme and how compares with previous IOCCC winners
+of the same theme.
Jump to: top
+ +Because the publication on the IOCCC site IS the award! Anyone is free to put their IOCCC hopefuls, lookalikes and/or entries that do not win on their web page for everyone to see.
Jump to: top
+It takes a fair amount of time to setup, run, respond to messages, process entries, review entries, trim down the set entries to a set of winning entries, doing the @@ -1807,9 +2094,11 @@ SUS-conforming. See the FAQ on “SUS” for more information.
Jump to: top
+Are you trying to trick us? :-)
@@ -1820,10 +2109,12 @@ also report when we enter what we believe is the final judging round, so you may guess that we have at least 3 rounds. :-) The actual number of rounds is certainly more than 3.Jump to: top
+These could be considered the ‘best entry’ for those years with 1 or more other entries that came in close behind.
Jump to: top
+Update the IOCCC news page, also by updating this repo.
Jump to: top
+ + +Jump to: top
+Jump to: top +mkiocccentry(1) will check and warn about the following conditions:
See also the Guidelines and the Rules (and in particular Rule 17).
-Jump to: top
+Jump to: top +txzchk(1) runs; if
know we refer you to the source
code.
Jump to: top
+fnamchk tool?fnamchk tool?This tool, which is in the mkiocccentry @@ -2018,13 +2321,19 @@ you can do so. For instance:
FAQ on “validating your submission tarball” for more information.Jump to: top
-Jump to: top
+In general the best way to compile everything in an entry directory is to run:
@@ -2063,9 +2372,11 @@ compilers might do different things, have different defects or other issues. Note that theMakefiles check the CC variable by substrings so that if you
were to do something like make CC=gcc=mp-12 it would register as gcc.
Jump to: top
+Some entries that won the IOCCC, particularly entries from long ago, no longer compile on more @@ -2096,9 +2407,11 @@ for more information.
fixed so that they can compile in modern systems though just because an entry compiles does not mean it will run on your specific system.Jump to: top
+Unfortunately some older entries are non-portable and require 32-bit support or @@ -2127,10 +2440,12 @@ for details. See also the FAQ on “GitHub pull request” for more information about pull requests.
Jump to: top
+Jump to: top
+Although we have fixed numerous entries to work with clang (sometimes in an alt @@ -2175,19 +2492,23 @@ See also the FAQ on “GitHub pull request” for more information about pull requests.
Jump to: top
+This was a C beautifier for Unix, both AT&T and Berkeley, but it seems to no
longer be available, code wise, except for Plan 9, but Plan 9 was never used for
judging the IOCCC. A Unix man page for cb
still exists.
Jump to: top
+stty echo. Sometimes you can also get away with <
clearing of the screen, however, that solves the problem, so clear will not
help.
Jump to: top
+ +Jump to: top
+ +This depends on your operating system but below are instructions for Linux and macOS with alternative methods for macOS and different package managers with Linux.
@@ -2410,8 +2735,10 @@ fix it and make a pull request. FAQ on “GitHub pull request” for more information about pull requests.Jump to: top
+This depends on your operating system but below are instructions for Linux and macOS with alternative methods for macOS and different package managers with Linux.
@@ -2440,9 +2767,11 @@ packages: one for compiling and one for linking / running. for downloading, installing and using ncurses.We recommend trying a method suitable for your environment first, if possible.
Jump to: top
+This might depend on the entry but most likely the Swiss Army Knife of sound @@ -2473,8 +2802,10 @@ include this here, at least for now.
Usually the index.html file will explain how to use it under Linux so we do not include this here, at least for now.
Jump to: top
+While we know that use of -Weverything is generally not recommended
by clang C compiler developers, we do use the -Weverything
@@ -2537,10 +2868,12 @@ differences, try from 1989/westley:
clang it might very well be considered
better than other entries.
Jump to: top
+intr is set to:
reason it’s not you might have to do something else including just piping it to
just grep intr or whatever.
Jump to: top
+What may have worked years ago may not work well or work at all today. @@ -2603,8 +2938,10 @@ Please see the FAQ on “fixing an entry” for how to submit a fix to an IOCCC entry.
Jump to: top
+If your OS package manager does not have the package tcpserver you can
download, making sure you’re in a temporary directory, and compile the source
@@ -2910,8 +3247,10 @@ inevitable in obfuscated code and even non-obfuscated code.
If you can work past this it might be good but this is not something that should be worried about too much as this is on the compiler developers, not you.
Jump to: top
+This depends on your operating system but below are instructions for Linux and macOS with alternative methods for macOS and different package managers with Linux.
@@ -2940,14 +3279,18 @@ packages: one for compiling and one for linking / running. for downloading, installing and using zlib.We recommend trying a method suitable for your environment first, if possible.
Jump to: top
+Please see the official Ruby installation guide.
Jump to: top
+First, if gem is not installed, see the gem GitHub repo.
Assuming you have git(1) installed, you can do:
exe/gem install rake
Once this is done, try as root or via sudo:
gem install rake
-Jump to: top
-Jump to: top
+Jump to: top
+Jump to: top
+Some may wonder: “Doesn’t this tamper with the entry too much?”
@@ -2999,9 +3372,11 @@ in the name of backward compatibility. problem and it is this that has complicated most of the fixes though again some can look almost identical.Jump to: top
+We have set up make rules to easily do see what was changed in the winning IOCCC @@ -3114,17 +3489,21 @@ and the FAQ on “entry source code changes” for more information.
Jump to: top
+Due to the fact that the original code has sometimes had to change these files are the original winning entry or as close to as possible to the original that we can find (in some cases a change was made by the Judges, for example, or an author might have made a modification without saving the original).
Jump to: top
+The alternate versions are exactly what they sound like, versions of their @@ -3151,9 +3530,11 @@ judgement call.
FAQ on “original source code” for more information.Jump to: top
+There are a number of reasons this was done but they usually come down to a
@@ -3169,8 +3550,10 @@ could no longer be so: main() instead had to call another function
the body of the old main() and that function would call itself again. In some
cases, however, this had to be done even without clang objections.
Jump to: top
+The reasons this was done varies. One of the earliest changes was making the old
.hint or .text files README.md files. The first time this was done was for
@@ -3191,11 +3574,13 @@ method of how to display files was devised).
There were certainly other reasons as well.
Jump to: top
+Jump to: top
+ + +Jump to: top
+The known bugs file, order by IOCCC years, contains a list of known bugs & (mis)features. If you are looking for an IOCCC entry to try and fix, this file is a good place to start.
@@ -3279,11 +3670,13 @@ in question. Note that in several cases what you may have discovered, while a (mis)feature is not considered a bug and should not be fixed. In cases where the bug is known, the entry’s known bugs file section may offer you important fixing clues. -Jump to: top
+We do not ‘maintain’ the contest entries as such. The code is made available on an ‘AS @@ -3304,9 +3697,11 @@ IOCCC entry. See also the FAQ on “GitHub pull request” for more information about pull requests.
Jump to: top
+If you see a problem with an IOCCC entry, first check the known bugs @@ -3343,9 +3738,11 @@ for more information about pull requests.
Note that we’re much more inclined to accept an author’s fixes but the judges have the final say in the matter.
Jump to: top
+If you discover a problem with the IOCCC website that is related @@ -3368,8 +3765,10 @@ already been reported. If it has been reported, feel free to add a comment to the issue. Otherwise, if you do not see the same issue reported, then feel free to open a new IOCCC website issue.
Jump to: top
+For IOCCC website problems that relate to a particular IOCCC entry, please see the @@ -3478,13 +3877,13 @@ FAQ on “fixing an entry”.
See also the FAQ on “GitHub pull request” for more information about pull requests.
-Unless you are the author who originally selected the XX - Anonymous location, please do not attempt to change an XX - Anonymous location without the permission of the original author, as sometimes they want to have the location known but not their name and/or other details.
If you know the location of an author listed under:
@@ -3547,9 +3946,11 @@ replace that text with:If you just wish to report the bad link issue, see FAQ on “report website problem”.
Jump to: top
+The IOCCC judges run the IOCCC entirely out of @@ -3565,11 +3966,13 @@ better for everyone. :-)
efforts, we suggest making an Anonymous gift via the IOCCC Amazon wishlist.Jump to: top
+THANK YOU in advance for your willingness to assist!
Jump to: top
+ + +Jump to: top
+As entries have been fixed it is entirely possible that some of the entries no @@ -3664,10 +4073,12 @@ original winning entries as compressed tar files for a given year.
“abuse of the rules” (although now blatant abuse of the rules to get around rule 2 size limits is discouraged).Jump to: top
+Jump to: top
+If you do make a new fork of THIS repo, we do ask that your fork keep up to date with the latest changes when possible. Thank you.
Jump to: top
+While IOCCC judges look favorably on most requests to use IOCCC material, @@ -3724,10 +4139,12 @@ See the Copyright at the bottom of IOCCC web pages for FAQ on “using IOCCC content”. For additional information on the Copyright and CC BY-SA 4.0 License.
Jump to: top
+Jump to: top
+An author_handle is string that refers to a given author and is unique to the
IOCCC. Each author has exactly one author_handle.
TL:DR: The contents of these JSON files contain the best known @@ -4119,9 +4540,11 @@ FAQ on “fixing author information” for information about how to update and/or correct IOCCC author information.
Jump to: top
+entry_id?entry_id?An entry_id is a string that identifies a winning entry of the IOCCC.
An entry_id is a 4-digit year, followed by an underscore, followed by a directory name.
The entry_id for that winning entry is:
2020_ferguson2
Jump to: top
+.top, .allyear, .year and .path files?.top, .allyear, .year and .path files?The IOCCC is now attempting to use the following terms:
Jump to: top
+First, if you do not already have a GitHub account or you have not installed an @@ -4367,9 +4796,11 @@ example, you would type:
git checkout master && git pull https://github.com/ioccc-src/winner.git master && git push origin master
This will merge your pull request to your fork.
Jump to: top
+Disclaimer: This FAQ is not a license, has no legal @@ -4395,8 +4826,10 @@ enjoy hat those working on the IOCCC have proper Attribution including, of course, the IOCCC winners themselves! It is designed to help ensure that everyone may enjoy the IOCCC.
Jump to: top
+The IOCCC uses Mastodon for news updates, announcements, and for various other social media purposes.
@@ -4423,8 +4856,10 @@ follow posts something so you will have to check the IOCCC feed manually. mastodon feed page and/or mastodon app from time to time to view IOCCC mastodon updates.Jump to: top
+If you are an author of a winning entry, you may find your own author_handle by going to your entry in the authors.html web page and viewing the string @@ -4456,8 +4891,10 @@ how they are used.
FAQ on “Author, Entry, Submission” for more information on terms such as author, entry, and submission.Jump to: top
+Sometimes an author will state that for best viewing purposes you should have your tabstop set at say 4 or 8. If you use vim or vi or vim in no compatible @@ -4466,8 +4903,10 @@ can hit ESC to do this) and then type the command:
:set tabstop=4
where 4 is the value you wish to set the tabstop to.
Jump to: top
+
How can I comment or make a suggestion on IOCCC rules, guidelines and tools?
+Q: How can I comment or make a suggestion on IOCCC rules, guidelines and tools?