Remove hint.html and index.html
As per discussions on GitHub the index.html and hint.html files should be deleted in favour of README.md files (from any .text/.txt/.markdown/.md files which will be turned into README.md in an upcoming commit).
This commit is contained in:
1 parent
ee8a36310f
commit
77fb0f11a2
143 files changed
-28606
No files matched your search
@@ -1,144 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="GENERATOR" content="mkd2html 2.1.5a DL=DISCOUNT">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="../hint.css">
|
||||
<title>Most Pointed Reaction</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Most Pointed Reaction</h1>
|
||||
|
||||
<p>Don Yang<br>
|
||||
<a href="http://uguu.org/">http://uguu.org/</a></p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<h3>To use:</h3>
|
||||
|
||||
<pre><code>make
|
||||
echo Some text | ./prog
|
||||
</code></pre>
|
||||
|
||||
<h3>Try:</h3>
|
||||
|
||||
<pre><code>echo IOCCC 2015 | ./prog | tee output.c
|
||||
make output
|
||||
./output
|
||||
|
||||
echo IOCCC 2015 | ./prog_c11 | tee output.c
|
||||
make output
|
||||
./output
|
||||
|
||||
echo IOCCC 2015 | ./prog_c++98 | tee output.c
|
||||
make output
|
||||
./output
|
||||
</code></pre>
|
||||
|
||||
<h3>Selected Judges Remarks:</h3>
|
||||
|
||||
<p>Before analysing the code in detail we were able to guess two out of four tests
|
||||
this entry uses to tell the 5 languages/flavors apart. Can you find all four?</p>
|
||||
|
||||
<p>The way the text is encoded in the output doesn’t cease to amaze. Can you tell
|
||||
why an array of 512 elements is needed?</p>
|
||||
|
||||
<h2>Author’s comments:</h2>
|
||||
|
||||
<p>Fuuko is a sea star generator. Feed her some input through stdin to
|
||||
get lots of sea star patterns in stdout.</p>
|
||||
|
||||
<pre><code>gcc -O3 -std=c90 fuuko.c -lm -o fuuko_c90
|
||||
echo IOCCC | ./fuuko_c90 > output_c90.c
|
||||
</code></pre>
|
||||
|
||||
<p>If you compile with a C99 compiler instead of C90, the sea stars will
|
||||
have eyes.</p>
|
||||
|
||||
<pre><code>gcc -O3 -std=c99 fuuko.c -lm -o fuuko_c99
|
||||
echo IOCCC | ./fuuko_c99 > output_c99.c
|
||||
</code></pre>
|
||||
|
||||
<p>Don’t like sea stars? Use a C++98 compiler to get dango instead.</p>
|
||||
|
||||
<pre><code>g++ -O3 -std=c++98 fuuko.c -lm -o fuuko_cpp98
|
||||
echo IOCCC | ./fuuko_cpp98 > output_cpp98.c
|
||||
</code></pre>
|
||||
|
||||
<p>Don’t like dango either? Use a C++11 compiler to get just circles (or
|
||||
swiss cheese, if you prefer that).</p>
|
||||
|
||||
<pre><code>g++ -O3 -std=c++11 fuuko.c -lm -o fuuko_cpp11
|
||||
echo IOCCC | ./fuuko_cpp11 > output_cpp11.c
|
||||
</code></pre>
|
||||
|
||||
<p>Don’t like any of these patterns? Use a C11 compiler and there will be
|
||||
no extra patterns.</p>
|
||||
|
||||
<pre><code>gcc -O3 -std=c11 fuuko.c -lm -o fuuko_c11
|
||||
echo IOCCC | ./fuuko_c11 > output_c11.c
|
||||
</code></pre>
|
||||
|
||||
<p>Regardless of which of these C/C++ dialects you choose, the output
|
||||
will all be valid C90 code that reproduces original input on stdout,
|
||||
filled with pointer dereferences (C stars).</p>
|
||||
|
||||
<p>Next time people ask you for a few pointers on C, you can run their
|
||||
question through Fuuko and give them pointers all day long.</p>
|
||||
|
||||
<h3>Compatibility</h3>
|
||||
|
||||
<p>Fuuko has been tested under these environments:</p>
|
||||
|
||||
<ul>
|
||||
<li>gcc 4.9.3 on Cygwin</li>
|
||||
<li>gcc 4.9.2 on Linux</li>
|
||||
<li>gcc 4.8.4 on Linux</li>
|
||||
<li>gcc 4.6.3 on Linux (doesn’t support C11 nor C++11)</li>
|
||||
<li>gcc 4.3.5 on JS/Linux</li>
|
||||
<li>clang 3.5.2 on Cygwin (doesn’t work with optimization enabled,
|
||||
probably cygwin bug)</li>
|
||||
<li>clang 3.5.0 on Linux</li>
|
||||
<li>clang 3.4.1 on Linux</li>
|
||||
<li>tcc 0.9.25 on JS/Linux (C99 only)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Features</h3>
|
||||
|
||||
<p>The most obscure parts are in detecting the subtle differences in
|
||||
different dialects. The standard committees put a lot of effort into
|
||||
avoiding “quiet changes”, but Fuuko is still able exploit a few of
|
||||
those. It should be an interesting exercise for the reader to figure
|
||||
how she did it.</p>
|
||||
|
||||
<p>Output patterns are usually random (except for C11). The built-in
|
||||
random number generator is seeded using ASLR. On systems where ASLR
|
||||
is not so random (such as cygwin), you can introduce randomness by
|
||||
changing number of command line arguments to Fuuko.</p>
|
||||
|
||||
<p>Output is somewhat robust: corruption on most of the lines will
|
||||
usually result in a compiler warning. This is because the output is
|
||||
vastly redundant: For ~1K of input, expect output to be on the order
|
||||
of ~1MB, and take ~500MB of RAM to compile.</p>
|
||||
|
||||
<p>CRC32 of source code is embedded in the source code itself.</p>
|
||||
|
||||
<p>Process of writing this program is included in spoiler.html</p>
|
||||
|
||||
<p>Code layout is inspired by Ibuki Fuuko, for her love of sea stars.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<TABLE><TR>
|
||||
<TD><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2016,
|
||||
<A HREF="/judges.html">Leo Broukhis, Simon Cooper, Landon Curt Noll</A>
|
||||
- All rights reserved<BR>
|
||||
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user