build missing HTML files for entries

Setup a simple topnav for missing HTML files for entries.

Added `bin/gen-other-html.sh` to build entry HTML files from
markdown other than README.md to index.html HTML files.

Fixed duplicate link text in `2020/ferguson1/gameplay.md`.

Improved `inc/md2html.cfg` to support building the missing HTML
files for entries.

Added `make gen_other_html` to top level Makefile.
Added `make gen_other_html` to `make quick_www` and `make www`.

Fixed inventory links for year level index.html files.
Changed `bin/output-year-index.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-02-27".

Added missing lines in `manifest.numbers`.  Update the affected
`.entry.json` files.

The manifest (in both `manifest.numbers` and the collection of
manifests from of all entry `.entry.json` files) now match.  Errors
from `make verify_entry_files` will now abort both `make quick_www`
and `make www` rules in the top level `Makefile`.

Changed markdown files in manifest to have an _inventory_order_ of
_2000000000_ so that the `index.html` file will usually appear at
the start of the _Secondary files_ set for the "#inventory" section
of an entry's `index.html` file.

Changed compressed tar files (files that end in _.tar.bz2_) in
manifest to have an _inventory_order_ of _100000_ so that these
files will usually appear at the end of the _Primary files_ set for
the "#inventory" section of an entry's `index.html` file.

Added 'Jump to top` link above the _Primary files_ section.
Changed `bin/output-index-inventory.sh` VERSION from "1.1.1 2024-02-23"
to "1.2 2024-02-27".

Updated HTML files to perform the above via `make www`.
This commit is contained in:
Landon Curt Noll committed 2024-02-27 22:36:20 -08:00
1 parent 7babf792e4
commit 9d3438fb88
718 files changed
+17515 -4084

No files matched your search

+16 -16
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Dave_Burton" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -81,14 +73,6 @@
"display_via_github" : false,
"entry_text" : "obfuscated calculator development notes"
},
{
"file_path" : "road.to.obscurity.md",
"inventory_order" : 150,
"OK_to_edit" : true,
"display_as" : "markdown",
"display_via_github" : true,
"entry_text" : "obfuscated calculator development notes"
},
{
"file_path" : "rule2.c",
"inventory_order" : 150,
@@ -145,6 +129,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
@@ -177,6 +169,14 @@
"display_via_github" : true,
"entry_text" : "markdown source for index.html"
},
{
"file_path" : "road.to.obscurity.md",
"inventory_order" : 4294967295,
"OK_to_edit" : true,
"display_as" : "markdown",
"display_via_github" : true,
"entry_text" : "markdown source for road.to.obscurity.html"
},
{
"file_path" : "spoilers.md",
"inventory_order" : 4294967295,
+5 -4
View File
@@ -301,9 +301,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015burton"><a name="inventory"></a>Inventory for
2015/burton</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/prog.c">prog.c</a>
- entry source</li>
@@ -328,9 +328,6 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/calc.
<li><a href="road.to.obscurity.html">road.to.obscurity.html</a> -
obfuscated calculator development notes</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/road.to.obscurity.md">road.to.obscurity.md</a>
- obfuscated calculator development notes</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/rule2.c">rule2.c</a>
- iocccsize reformatted to exactly 4096 octets</li>
<li><a
@@ -351,6 +348,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.entry.json">.entry.json</a>
- description of entry in JSON</li>
@@ -362,6 +360,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/.giti
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/README.md">README.md</a>
- markdown source for index.html</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/road.to.obscurity.md">road.to.obscurity.md</a>
- markdown source for road.to.obscurity.html</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/burton/spoilers.md">spoilers.md</a>
- markdown source for spoilers.html</li>
</ul>
+371
View File
@@ -0,0 +1,371 @@
<!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 -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! 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/top.default.html -->
<!-- -->
<!-- The original markdown content was formed by the tool: bin/gen-other-html.sh -->
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
<!-- -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<link rel="stylesheet" href="../../ioccc.css">
<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>
<meta name="description" content="road.to.obscurity.md for 2015/burton">
<meta name="keywords" content="IOCCC, 2015/burton, road.to.obscurity.md">
</head>
<!-- END: this line ends content from: inc/head.default.html -->
<!-- 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/header.default.html -->
<div class="header">
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
<h1>The International Obfuscated C Code Contest</h1>
<h2>road.to.obscurity.md for 2015/burton</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/topnav.up2index.html -->
<div class="topnav">
<a class="Left" href="index.html">&uarr; jump to index.html &uarr;</a>
</div>
<!-- END: this line ends content from: inc/topnav.up2index.html -->
<!-- START: this line starts content from: inc/begin-row.default.html -->
<div class="row">
<!-- END: this line ends content from: inc/begin-row.default.html -->
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
<div class="leftcolumn">
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/sidenav.default.html -->
<div class="sidenav">
<a href="#content">Jump to contents</a>
</div>
<hr>
<div class="sidenav">
<a href="../../index.html">IOCCC Home</a>
<a href="../../years.html">Winning Entries</a>
<a href="../../authors.html">People who have won</a>
</div>
<hr>
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
<hr>
<div class="sidenav">
<a href="../../bugs.html">Bugs &amp; (mis)features</a>
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
<a href="../../faq.html#fix_author">Fixing author info</a>
<a href="../../thanks-for-help.html">Thanks for the help</a>
</div>
<hr>
<div class="sidenav">
<a href="../../judges.html">The IOCCC Judges</a>
<a href="../../contact.html">Contacting the IOCCC</a>
</div>
<hr>
<div class="sidenav">
<a href="#top">Jump to top</a>
</div>
<!-- END: this line ends content from: inc/sidenav.default.html -->
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
<div class="rightcolumn">
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<a name="content"></a>
<!-- 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 -->
<h1 id="development-of-the-obfuscated-calculator.">Development of the
obfuscated calculator.</h1>
<p>I wanted to enter the IOCCC….</p>
<p>I think I can write something clever. Possibly even obscure. The
competition is fierce, but not a closed door.</p>
<p>I needed an interesting program, that had a reasonable chance of
being shrunk within 4096 bytes, and lent itself to obfuscation. I had
been revisiting utilities I’ve written over the years. One useful
program was <code>calc</code>, a simple recursive descent signed integer
expression parser I developed from first principles as a demonstration
of how computers work for my son. That program did the basic four
operations, but as a programmer, I needed more, so those were added over
time.</p>
<p><code>calc</code> is a useful, functioning utility. The operators
before the obfuscation dance began (this is called foreshadowing):</p>
<pre><code>() forced precedence
- ~ ? unary minus, compl, byteswap
* / % &amp; &lt;&lt; &gt;&gt; mul, div, mod, bitand, shift: left, right
+ - | ^ add, sub, bitor, xor
NUM 0-9</code></pre>
<p>This seemed like a reasonable candidate to experiment with
obfuscation; perhaps it might yield good results.</p>
<h2 id="principle-of-operation">Principle of operation</h2>
<p>The algorithm was and is rather straightforward:</p>
<pre><code>expr() {
n = term()
t = token()
if (t == ADD) return n += expr()
if (t == SUB) return n -= expr()
if (t == BOR) return n |= expr()
if (t == XOR) return n ^= expr()
ungettoken(t)
return n
}
term() {
n = factor()
t = token()
if (t == MUL) return n *= term()
if (t == DIV) return n /= term()
if (t == AND) return n &amp;= term()
if (t == RSH) return n &gt;&gt; term()
if (t == LSH) return n &lt;&lt; term()
ungettoken(t)
return n
}
factor() {
t = token()
if (t == LPAREN) {
n = expr()
if token() == RPAREN
return n
error()
}
if (t == SUB) return -factor()
if (t == CMP) return ~factor()
if (t == QUE) return byteswap(factor())
if (t == DIG) return strtol()
error()
}</code></pre>
<h2 id="obfuscation-is-a-process">Obfuscation is a process</h2>
<p>Within the above algorithm, there are many details unmentioned, all
ripe for obfuscation:</p>
<ul>
<li>input</li>
<li>tokenization</li>
<li><code>atoi(3)</code> input values</li>
<li><code>sprintf(3)</code> results</li>
<li>error recovery</li>
<li>swapping bytes</li>
<li>user interface (command line vs <code>stdin</code>)</li>
</ul>
<p>Uncertain as to how this would progress, I started
obfuscating/condensing everything except the conversion operations,
leaving those to <code>sprintf(3)</code> and <code>strtol(3)</code>. The
first version of the obfuscated code used an homage to 1984 anon for
I/O, and it featured a <code>#define</code> for <code>else</code>s and
the types, to help minimize the repetition. And of course, most
functions were renamed with one or two letters, and most of the
variables became single letter globals. Tokenization was rather easy
with a declared array, just initialized with unique values for each.</p>
<p>This was when the obfuscation took a turn for the better (worse): it
was easy to hide the operations via a simple transformation. The code
now dealt with small integer values instead of direct ASCII
representation of the operations. And the strings were collapsed into a
single combined error message and operator tokenization table. This was
relatively obscure.</p>
<p>Next, <code>sprintf(3)</code> was replaced with a custom formatter.
This was rather simple, but at least the formatting was not obvious.
Formatting and printing were split early. <code>strtol(3)</code> was
replaced with custom logic, limited to 3 practical bases: octal,
decimal, and hex. The last result was remembered in a special variable,
dot.</p>
<p>By this time, I had a version which I considered obscure, and shared
this early version with a couple of colleagues for comments. I suggested
I could improve the obfuscation of a <code>term()</code> and
<code>factor()</code>, and would like to have assignable memories.</p>
<p>This code was pretty dense, but inspired by previous IOCCC entries, I
thought I might get rid of all the <code>else</code>s, which showed the
structure of the parser rather clearly. Investing in the ternary
operator, the code got quite a bit more difficult to follow, used only
<code>for</code> loops, and I had to start taking notes to follow it.
This was a good sign! ;-)</p>
<p>I started testing the code. I wrote a test suite to ensure the
changes I made did not corrupt the processing (oh so easy to do with
this obfuscated mess). Why does <code>-1&gt;&gt;32</code> yield
<code>-1</code>? Oh, yeah: signed arithmetic. Enter Java’s
<code>unsigned</code> shift: <code>&gt;&gt;&gt;</code>. Better. But with
more features, more to get wrong, and harder to know which expression is
causing the error. The easy solution: if the name begins with
<code>e</code>, echo the input. Now I can see the failing expression.
Wait, what is this test expression supposed to be testing?</p>
<p>Wouldn’t it be nice to have comments?</p>
<p>Adding new functionality to an obscure program is … going about it
backwards. Get the functionality correct and complete, THEN obscure.
Sounds obvious, but that did not happen. I got comments working, then
desired to have multiple statements on a single line (read: semicolon
expression terminators). This involved quite a bit of rework of the
input code, but now allowed very convenient user interaction.</p>
<h2 id="better-obscurity-is-a-laborious-process">Better Obscurity is a
laborious process</h2>
<p>Satisfied with the functionality, but unsatisfied with the obscurity,
I pondered if I could get rid of all the constants? This had not been
done before (to my knowledge), and I was able to work out the how-tos
and the compromises. Now I can no longer declare my arrays, I have to
allocate them. Obscurity now increased!</p>
<p>But wouldn’t it be nice to have assignable memories?</p>
<p>Around this time, the formatted code no longer fit with the 2053
limit (due to a lack of comprehension of the significance of the
space-after-brace-and-semi rule, and a layout program that did not know
how to do this). Frustrated, I wrote another program to reformat this
code into <a href="rule2.c">rule2.c</a>, which was a single C token per
line. This solved the formatting problem, but intriguingly introduced
another. Now I was faced with the 4096 rule as well as the 2053 rule.
But this was a challenge!</p>
<p>I wrote a de-obfuscator, and worked on both the unobfuscated version
and the master code. I worked on the template formatter to make this as
automated as possible, and worked to achieve both a perfectly presented
picture AND the single-line exactly-at-4096 <a
href="rule2.c">rule2.c</a>.</p>
<p>Finally, “perfection”, with assignable memories! Where perfection is
defined as a nicely formatted picture at less than 2053, and exactly
4096 token-per-line <a href="rule2.c">rule2.c</a>.</p>
<h2 id="testing-testing-testing">Testing Testing Testing</h2>
<p>Cross platform, it works on Mac OSX, fails on Linux. It works if
<code>#include &lt;stdlib.h&gt;</code>, but it dumps core without it
(the only change!)?. 64-bits without proper declaration of
<code>int</code>s in syscalls yields unpredictable results. 32-bit
compilation showed problems with byte-swapping in using addition versus
bitwise-or. In 32-bit land, <code>x&lt;&lt;32 == x</code>, so
<code>x&lt;&lt;32 + x&gt;&gt;32</code> does not yield the desired
result, but <code>x&lt;&lt;32 | x&gt;&gt;32</code> does (with
appropriate care and feeding). And the different compilers on different
hosts complained loudly and differently, although all produced correct
bits in spite of the noise.</p>
<p>Further, the program did not do UNIX pipelines well, due to the
unbuffered homage code (byte-at-a-time I/O), of which
<code>write(2)</code> was also the source of the portability problem.
Replace <code>write(2)</code> with
<code>getchar(3)</code>/<code>putchar(3)</code>, and it piped well but
lost some obscurity and no longer paid (direct) homage to history.</p>
<p>Another problem: only one expression at a time was allowed on the
command line, no semis, no comments, and it turns out <code>$2</code>,
<code>$3</code>, … were not handled correctly. Given the new I/O code,
it was now possible to copy the command line arguments into a buffer,
and write a small routine to retrieve bytes from this buffer like
<code>getchar(3)</code>. Voila! Better obfuscation with much better
functionality!</p>
<p>But wouldn’t it be nice to show what the current variables hold?</p>
<p>Bytes are now hard to find to keep exactly at 4096, and adding
functionality to obscured code is not easy. Restructuring the logic to
gain the bytes necessary, code to display the variables was added.</p>
<p>Test. Test. Test. Oh, noes! More bugs! Typing “<code>1 + 2 5</code>”
yields <code>3</code>, but no syntax error. “<code>g = 1</code>” yields
a syntax error, and “<code>0xg</code>” does not! “<code>)</code>” causes
a segfault! Why didn’t I test these before I started obfuscating?! By
this point, everything I did to the code perturbed the 4096 bytes, all
variables were already a single character, and it was really difficult
to follow the logic in a debugger (single-stepping an expression did the
entire line of code, even if it involved multiple statements – and it
did, everywhere, even in the unobfuscated version; think: a complex
chain of ternary expressions is a single statement). This involved
careful examination of all the expressions within the logic, trying to
find a different way of getting the same result, but typically within
fewer bytes than before to allow for the added logic to fix the
bugs.</p>
<p>The bugs were fixed, the code re-formatted, and <a
href="rule2.c">rule2.c</a> was again 4096 bytes.</p>
<p>But wouldn’t it be nice for unary plus to work?</p>
<p>Add unary plus, re-balance. Little things now take a fair bit of
work. Adding anything requires taking away in others, but since all the
logic is functional, this means rewriting the logic to be more concise.
After several rounds of this, bytes are scarce to come by.</p>
<p>But wouldn’t it be nice for assignments to be silent?</p>
<p>Made them silent (easier said than done!). Why does
“<code>1 + 2 5</code>” print a syntax error, but
“<code>a = 1 + 2 5</code>” does not? Rewrite(!) the assignment logic –
and this requires more bytes!</p>
<h2 id="better-obscurity-through-simplification">Better Obscurity
Through Simplification</h2>
<p>Except there were not enough bytes to do this, unless
<code>#include &lt;unistd.h&gt;</code> is removed. But then
<code>sbrk()</code> must be declared, eating into the savings. If only
there were 512 bytes of memory already allocated that could be portably
touched for free….</p>
<p>Light bulb! Memory allocation was excised, and the code became more
obscure.</p>
<p>It was working again! It formats beautifully, it compiled cleanly
(with apropos <code>-Wno-guards</code>), it remains obscure after
<code>cpp(1)</code> and <code>clang-format(1)</code>, it measures within
the limits and exactly at 4096 (this latter was really getting
challenging to maintain). No more bugs known, it is feature complete,
documentation written.</p>
<p>But wouldn’t it be nice to have a logical not?</p>
<p>Sigh. This was the last operation added. Another round of code churn,
expressions are difficult to rewrite because they are both obscure and
relatively tight. But changing around the stable initialization code –
by now the largest piece of logic – yielded the necessary bytes, and
improved obscurity by double duty encoding of the operations
initialization.</p>
<p>The utility is now truly functional, and feature complete, and
obscure. Without <a href="src.doc.txt">src.doc.txt</a> (basic
documentation of the code structure), and some commented expanded logic
stashed away, and the familiarity I have with the code having written
and revised it repeatedly, I would not even want to attempt to decipher
the logic. Many times in the debugging, I was thwarted by my own
obfuscations, and went down blind paths in trying to fix a bug or add
functionality. Now I think I have a good entry.</p>
<p>But wouldn’t it be nice to import pre-set definitions from a
file?</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 -->
<!-- END: this line ends content from: inc/after-content.default.html -->
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/end-row.default.html -->
</div>
<!-- END: this line ends content from: inc/end-row.default.html -->
<!-- START: this line starts content from: inc/footer.default.html -->
<div class="footer">
<hr>
<h2>Coda</h2>
<p><a href="https://validator.w3.org/nu/?doc=#">Nu HTML check this web page</a></p>
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
</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 -->
+179
View File
@@ -0,0 +1,179 @@
<!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 -->
<!-- -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- !!! 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/top.default.html -->
<!-- -->
<!-- The original markdown content was formed by the tool: bin/gen-other-html.sh -->
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
<!-- -->
<!-- START: this line starts content from: inc/head.default.html -->
<head>
<link rel="stylesheet" href="../../ioccc.css">
<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>
<meta name="description" content="spoilers.md for 2015/burton">
<meta name="keywords" content="IOCCC, 2015/burton, spoilers.md">
</head>
<!-- END: this line ends content from: inc/head.default.html -->
<!-- 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/header.default.html -->
<div class="header">
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
<h1>The International Obfuscated C Code Contest</h1>
<h2>spoilers.md for 2015/burton</h2>
</div>
<!-- END: this line ends content from: inc/header.default.html -->
<!-- START: this line starts content from: inc/topnav.up2index.html -->
<div class="topnav">
<a class="Left" href="index.html">&uarr; jump to index.html &uarr;</a>
</div>
<!-- END: this line ends content from: inc/topnav.up2index.html -->
<!-- START: this line starts content from: inc/begin-row.default.html -->
<div class="row">
<!-- END: this line ends content from: inc/begin-row.default.html -->
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
<div class="leftcolumn">
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/sidenav.default.html -->
<div class="sidenav">
<a href="#content">Jump to contents</a>
</div>
<hr>
<div class="sidenav">
<a href="../../index.html">IOCCC Home</a>
<a href="../../years.html">Winning Entries</a>
<a href="../../authors.html">People who have won</a>
</div>
<hr>
<div class="sidenav">
<a href="../../news.html">IOCCC News</a>
<a href="../../faq.html#submit">How to enter the IOCCC</a>
<a href="../../faq.html">FAQ</a>
</div>
<hr>
<div class="sidenav">
<a href="../../bugs.html">Bugs &amp; (mis)features</a>
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
<a href="../../faq.html#fix_author">Fixing author info</a>
<a href="../../thanks-for-help.html">Thanks for the help</a>
</div>
<hr>
<div class="sidenav">
<a href="../../judges.html">The IOCCC Judges</a>
<a href="../../contact.html">Contacting the IOCCC</a>
</div>
<hr>
<div class="sidenav">
<a href="#top">Jump to top</a>
</div>
<!-- END: this line ends content from: inc/sidenav.default.html -->
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
<div class="rightcolumn">
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/before-content.default.html -->
<a name="content"></a>
<!-- 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 -->
<h3 id="spoilers">Spoilers</h3>
<p><code>calc</code> is a recursive-descent parser. It allocates from
the stack deep enough that all expressions are exhausted before the
recursion stack depth reaches the allocations. The memory map and source
is documented in <a href="src.doc.txt">src.doc.txt</a>. Tokens are
encoded using values 0-20, where 0 is an invalid token, 1 is minus, 2 is
space, 3 is plus, etc. The necessary constants are derived at the start
of the program, using the guarantee that globals are initialized to
zero; so a correct NULL pointer is obtained from an uninitialized global
pointer variable, and the integers from uninitialized global
<code>int</code> variables. If <code>x</code> is a global
<code>int</code>, then <code>!x</code> is <code>1</code>, and the
derivation proceeds from there, using some identities that are
confusingly similar and interestingly combined (increasing
obfuscation):</p>
<pre><code>obc clr
--- ---
-~x x+1
~-x x-1
y-~x y+x+1</code></pre>
<p>The derived constants are a compromise between simple expressions,
maximum utility, and minimum number of variables used.</p>
<p>Command line arguments are copied into the upper half of the input
buffer, separated by a space. This allows the code to have a single
input parser by using a pointer-to-func to either
<code>getchar(3)</code> if live, or a <code>getchar(3)</code>
simulator.</p>
<p>A small amount of obfuscation comes from <code>void</code> functions
declared <code>int</code>, but missing <code>return</code>. This is
necessary to allow these functions in ternary <code>?:</code>
expressions and paired with <code>&amp;&amp;</code> and <code>||</code>;
but the requisite returns would add symbol count at no benefit to
obscurity or functionality. Function decomposition was mostly chosen to
avoid curly braces: if a <code>for</code>-loop required multiple
statements, the body became a new function. Last, but not least: sharing
state via global variables is an ancient and honored form of
obfuscation, and remarkably effective.</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 -->
<!-- END: this line ends content from: inc/after-content.default.html -->
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
</div>
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
<!-- START: this line starts content from: inc/end-row.default.html -->
</div>
<!-- END: this line ends content from: inc/end-row.default.html -->
<!-- START: this line starts content from: inc/footer.default.html -->
<div class="footer">
<hr>
<h2>Coda</h2>
<p><a href="https://validator.w3.org/nu/?doc=#">Nu HTML check this web page</a></p>
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
</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 -->
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Gil_Dogon" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -57,6 +49,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -314,9 +314,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015dogon"><a name="inventory"></a>Inventory for
2015/dogon</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/prog.c">prog.c</a>
- entry source</li>
@@ -334,6 +334,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/dogon/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Etienne_Duble" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -81,6 +73,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -284,9 +284,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015duble"><a name="inventory"></a>Inventory for
2015/duble</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/prog.c">prog.c</a>
- entry source</li>
@@ -313,6 +313,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/duble/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -10,14 +10,6 @@
{ "author_handle" : "Yusuke_Endoh" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -74,6 +66,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+4 -3
View File
@@ -312,7 +312,7 @@ this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<aside id="footnotes" class="footnotes footnotes-end-of-document"
<section id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
@@ -340,7 +340,7 @@ href="http://www.rfc-editor.org/info/rfc4648"
class="uri">http://www.rfc-editor.org/info/rfc4648</a>.<a href="#fnref5"
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</aside>
</section>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
@@ -349,9 +349,9 @@ class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<h1 id="inventory-for-2015endoh1"><a name="inventory"></a>Inventory for
2015/endoh1</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/prog.c">prog.c</a>
- entry source</li>
@@ -375,6 +375,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh1/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Yusuke_Endoh" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -57,6 +49,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -177,9 +177,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015endoh2"><a name="inventory"></a>Inventory for
2015/endoh2</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/prog.c">prog.c</a>
- entry source</li>
@@ -197,6 +197,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh2/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Yusuke_Endoh" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -73,6 +65,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -335,9 +335,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015endoh3"><a name="inventory"></a>Inventory for
2015/endoh3</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/prog.c">prog.c</a>
- entry source</li>
@@ -361,6 +361,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh3/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Yusuke_Endoh" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -65,6 +57,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -181,9 +181,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015endoh4"><a name="inventory"></a>Inventory for
2015/endoh4</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/prog.c">prog.c</a>
- entry source</li>
@@ -204,6 +204,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/endoh4/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Qiming_HOU" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -65,6 +57,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -223,9 +223,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015hou"><a name="inventory"></a>Inventory for
2015/hou</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.c">prog.c</a>
- entry source</li>
@@ -245,6 +245,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Anthony_C_Howe" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -129,6 +121,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -264,9 +264,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015howe"><a name="inventory"></a>Inventory for
2015/howe</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.c">prog.c</a>
- entry source</li>
@@ -311,6 +311,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+15 -19
View File
@@ -223,30 +223,26 @@ Entries of 2015 - The 24th IOCCC</h1>
<p><strong>Download IOCCC</strong> <a
href="2015/ioccc.2015.tar.bz2">2015 entry source</a></p>
<ul>
<li><a href="2015/burton/index.html">2015/burton</a> - Most Useful</li>
<li><a href="2015/dogon/index.html">2015/dogon</a> - Most Crafty</li>
<li><a href="2015/duble/index.html">2015/duble</a> - Best
Handwriting</li>
<li><a href="2015/endoh1/index.html">2015/endoh1</a> - Most Diffused
<li><a href="burton/index.html">2015/burton</a> - Most Useful</li>
<li><a href="dogon/index.html">2015/dogon</a> - Most Crafty</li>
<li><a href="duble/index.html">2015/duble</a> - Best Handwriting</li>
<li><a href="endoh1/index.html">2015/endoh1</a> - Most Diffused
Reaction</li>
<li><a href="2015/endoh2/index.html">2015/endoh2</a> - Most Overlooked
<li><a href="endoh2/index.html">2015/endoh2</a> - Most Overlooked
Obfuscation</li>
<li><a href="2015/endoh3/index.html">2015/endoh3</a> - Back to the
Future Award</li>
<li><a href="2015/endoh4/index.html">2015/endoh4</a> - Best
One-liner</li>
<li><a href="2015/hou/index.html">2015/hou</a> - Most Well-rounded
Hash</li>
<li><a href="2015/howe/index.html">2015/howe</a> - Most Different</li>
<li><a href="2015/mills1/index.html">2015/mills1</a> - For the Birds!
<li><a href="endoh3/index.html">2015/endoh3</a> - Back to the Future
Award</li>
<li><a href="2015/mills2/index.html">2015/mills2</a> - Most Compact</li>
<li><a href="2015/muth/index.html">2015/muth</a> - Most Complete Use of
<li><a href="endoh4/index.html">2015/endoh4</a> - Best One-liner</li>
<li><a href="hou/index.html">2015/hou</a> - Most Well-rounded Hash</li>
<li><a href="howe/index.html">2015/howe</a> - Most Different</li>
<li><a href="mills1/index.html">2015/mills1</a> - For the Birds!
Award</li>
<li><a href="mills2/index.html">2015/mills2</a> - Most Compact</li>
<li><a href="muth/index.html">2015/muth</a> - Most Complete Use of
CPP</li>
<li><a href="2015/schweikhardt/index.html">2015/schweikhardt</a> - Best
<li><a href="schweikhardt/index.html">2015/schweikhardt</a> - Best
Documented</li>
<li><a href="2015/yang/index.html">2015/yang</a> - Most Pointed
Reaction</li>
<li><a href="yang/index.html">2015/yang</a> - Most Pointed Reaction</li>
</ul>
<p> <strong>Jump to:</strong> <a href="#">top</a></p>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Christopher_Mills" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -57,6 +49,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -267,9 +267,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015mills1"><a name="inventory"></a>Inventory for
2015/mills1</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/prog.c">prog.c</a>
- entry source</li>
@@ -287,6 +287,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills1/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Christopher_Mills" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -73,6 +65,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -249,9 +249,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015mills2"><a name="inventory"></a>Inventory for
2015/mills2</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/prog.c">prog.c</a>
- entry source</li>
@@ -273,6 +273,7 @@ entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Dominik_Muth" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -177,6 +169,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -223,9 +223,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015muth"><a name="inventory"></a>Inventory for
2015/muth</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/prog.c">prog.c</a>
- entry source</li>
@@ -288,6 +288,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/muth/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Jens_Schweikhardt" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -57,6 +49,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -850,9 +850,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1
id="inventory-for-2015schweikhardt"><a name="inventory"></a>Inventory
for 2015/schweikhardt</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/prog.c">prog.c</a>
- entry source</li>
@@ -870,6 +870,7 @@ download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/schweikhardt/.entry.json">.entry.json</a>
- description of entry in JSON</li>
+8 -8
View File
@@ -9,14 +9,6 @@
{ "author_handle" : "Don_Yang" }
],
"manifest" : [
{
"file_path" : "index.html",
"inventory_order" : 10,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : "prog.c",
"inventory_order" : 20,
@@ -65,6 +57,14 @@
"display_via_github" : false,
"entry_text" : "download entry source"
},
{
"file_path" : "index.html",
"inventory_order" : 2000000000,
"OK_to_edit" : false,
"display_as" : "html",
"display_via_github" : false,
"entry_text" : "entry home page"
},
{
"file_path" : ".entry.json",
"inventory_order" : 4294967295,
+2 -1
View File
@@ -229,9 +229,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
<h1 id="inventory-for-2015yang"><a name="inventory"></a>Inventory for
2015/yang</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/prog.c">prog.c</a>
- entry source</li>
@@ -250,6 +250,7 @@ source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/yang/.entry.json">.entry.json</a>
- description of entry in JSON</li>