fix many internal links
Fixed a number of internal links that need to go to the GitHub site. Ran `make www` to perform the above.
This commit is contained in:
1 parent
b84f8cbe28
commit
e7d69bc232
175 files changed
+645
-631
No files matched your search
@@ -73,7 +73,7 @@ separator in the form of a single line followed by a section signifying the
|
||||
function of the program, a block with removed shape of lambda character. Even
|
||||
the official IOCCC size tool acknowledges this: When you call `./iocccsize -i
|
||||
<prog.c`, using the [2019 version of
|
||||
iocccsize](../../2019/iocccsize.c), iocccsize returns **955**,
|
||||
iocccsize](%%REPO_URL%%/2019/iocccsize.c), iocccsize returns **955**,
|
||||
which is the Unicode codepoint of the **λ** character.
|
||||
|
||||
It might be a surprise for you that according to the IOCCC size tool the program is
|
||||
@@ -89,7 +89,7 @@ When built directly using
|
||||
```
|
||||
|
||||
the program (`prog`) accepts a single parameter with the name of an Unlambda program. You can
|
||||
download the [Colossal Cave Adventure][1] (the [advent.unl](advent.unl) file)
|
||||
download the [Colossal Cave Adventure][1] (the [advent.unl](%%REPO_URL%%/2019/adamovsky/advent.unl) file)
|
||||
and run it like this:
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -103,7 +103,7 @@ You can also try other programs from the Web. Many example programs are in the o
|
||||
entries from [quine contest][4].
|
||||
|
||||
There is an alternative build path that requires the 2018 IOCCC size tool to complete. Put the tool
|
||||
source [iocccsize_2018.c](iocccsize_2018.c) in the project directory and call
|
||||
source [iocccsize_2018.c](%%REPO_URL%%/2019/adamovskyiocccsize_2018.c) in the project directory and call
|
||||
|
||||
``` <!---sh-->
|
||||
make identify
|
||||
@@ -199,7 +199,7 @@ since it was developed using `char`s it should be always used safely.
|
||||
|
||||
### Spoilers:
|
||||
|
||||
- You can examine the [progSpoiler.c](progSpoiler.c) file. It is the original
|
||||
- You can examine the [progSpoiler.c](%%REPO_URL%%/2019/adamovskyprogSpoiler.c) file. It is the original
|
||||
final version of the interpreter, before I started the downsizing. It accepts
|
||||
one more optional parameter that specifies a filename for the output Unlambda
|
||||
function (it's the Unlambda function that remains after all function
|
||||
@@ -291,7 +291,7 @@ be applied.
|
||||
[6]: https://en.wikipedia.org/wiki/Lambda_calculus "Lambda Calculus on Wikipedia"
|
||||
[7]: https://en.wikipedia.org/wiki/Combinatory_logic "Combinatory Logic on Wikipedia"
|
||||
[8]: https://inazz.jp/unlambda/ "Online Unlambda interpreter"
|
||||
[9]: ../../2014/birken/index.html "Best use of port 1701"
|
||||
[9]: %%REPO_URL%%/2014/birken/index.html "Best use of port 1701"
|
||||
|
||||
<!--
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@ it into two portions: the initial macro section where I had limited resources
|
||||
which you should disregard its shape, unless you like it, and the rest, which is a
|
||||
separator in the form of a single line followed by a section signifying the
|
||||
function of the program, a block with removed shape of lambda character. Even
|
||||
the official IOCCC size tool acknowledges this: When you call <code>./iocccsize -i <prog.c</code>, using the <a href="../../2019/iocccsize.c">2019 version of
|
||||
the official IOCCC size tool acknowledges this: When you call <code>./iocccsize -i <prog.c</code>, using the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/iocccsize.c">2019 version of
|
||||
iocccsize</a>, iocccsize returns <strong>955</strong>,
|
||||
which is the Unicode codepoint of the <strong>λ</strong> character.</p>
|
||||
<p>It might be a surprise for you that according to the IOCCC size tool the program is
|
||||
@@ -420,7 +420,7 @@ by the sheer length of the dividing line and totally overlooks the rest of the p
|
||||
<p>When built directly using</p>
|
||||
<pre><code> make</code></pre>
|
||||
<p>the program (<code>prog</code>) accepts a single parameter with the name of an Unlambda program. You can
|
||||
download the <a href="https://github.com/irori/advent-unlambda" title="Adventure">Colossal Cave Adventure</a> (the <a href="advent.unl">advent.unl</a> file)
|
||||
download the <a href="https://github.com/irori/advent-unlambda" title="Adventure">Colossal Cave Adventure</a> (the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/adamovsky/advent.unl">advent.unl</a> file)
|
||||
and run it like this:</p>
|
||||
<pre><code> ./prog advent.unl</code></pre>
|
||||
<p><strong>NOTE</strong>: the file was added to the entry so there is no need to download it.</p>
|
||||
@@ -428,7 +428,7 @@ and run it like this:</p>
|
||||
<a href="http://www.madore.org/~david/programs/unlambda/#distrib" title="Reference Unlambda distribution">Unlambda distribution</a> on the Unlambda homepage. The most complex programs there are
|
||||
entries from <a href="http://www.madore.org/~david/programs/unlambda/#quine" title="Unlambda quine contest">quine contest</a>.</p>
|
||||
<p>There is an alternative build path that requires the 2018 IOCCC size tool to complete. Put the tool
|
||||
source <a href="iocccsize_2018.c">iocccsize_2018.c</a> in the project directory and call</p>
|
||||
source <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/adamovskyiocccsize_2018.c">iocccsize_2018.c</a> in the project directory and call</p>
|
||||
<pre><code> make identify</code></pre>
|
||||
<p>It will build the tool and use it to build an alternative program <code>prog2</code>, which in turn will
|
||||
produce an Unlambda program <code>identify.unl</code>. <code>make identify</code> runs this program to identify
|
||||
@@ -502,7 +502,7 @@ since it was developed using <code>char</code>s it should be always used safely.
|
||||
</ul>
|
||||
<h3 id="spoilers">Spoilers:</h3>
|
||||
<ul>
|
||||
<li><p>You can examine the <a href="progSpoiler.c">progSpoiler.c</a> file. It is the original
|
||||
<li><p>You can examine the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/adamovskyprogSpoiler.c">progSpoiler.c</a> file. It is the original
|
||||
final version of the interpreter, before I started the downsizing. It accepts
|
||||
one more optional parameter that specifies a filename for the output Unlambda
|
||||
function (it’s the Unlambda function that remains after all function
|
||||
@@ -547,7 +547,7 @@ were shuffled both for <code>S</code> functions and Apply functions in the same
|
||||
the meaning of <code>f</code> and <code>r</code> prefixes.</p></li>
|
||||
</ul>
|
||||
<h3 id="identification-spoiler">Identification spoiler:</h3>
|
||||
<p>The alternative build path <code>make identify</code> output commemorates a <a href="../../2014/birken/index.html" title="Best use of port 1701">previous IOCCC
|
||||
<p>The alternative build path <code>make identify</code> output commemorates a <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/birken/index.html" title="Best use of port 1701">previous IOCCC
|
||||
winning entry</a> which uses similar methods to mess with the size tool.</p>
|
||||
<h3 id="judges-spoilers">Judges’ spoilers:</h3>
|
||||
<p>It is not a bug, it is a feature. :)</p>
|
||||
|
||||
@@ -60,7 +60,7 @@ Compiles cleanly with:
|
||||
|
||||
Included is a test script, useful for the corner cases. As in all good Unix
|
||||
programs, it is silent upon success; any output demonstrates an error. Instead
|
||||
of checking correctness, the [check.sh](check.sh) script can simply output the
|
||||
of checking correctness, the [check.sh](%%REPO_URL%%/2019/burton/Rcheck.sh) script can simply output the
|
||||
results: (The Makefile contains the spoiler):
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -92,7 +92,7 @@ All your base belong to us, but the constants seem a bit ... off?
|
||||
|
||||
### Bonus
|
||||
|
||||
The script [cow.sh](cow.sh) provides a closer analog, and perhaps a more useful
|
||||
The script [cow.sh](%%REPO_URL%%/2019/burton/cow.sh) provides a closer analog, and perhaps a more useful
|
||||
interface.
|
||||
|
||||
Included is a version without compilation warnings:
|
||||
|
||||
@@ -405,7 +405,7 @@ The output should look familiar.</p>
|
||||
<h3 id="description">Description:</h3>
|
||||
<p>Included is a test script, useful for the corner cases. As in all good Unix
|
||||
programs, it is silent upon success; any output demonstrates an error. Instead
|
||||
of checking correctness, the <a href="check.sh">check.sh</a> script can simply output the
|
||||
of checking correctness, the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/burton/Rcheck.sh">check.sh</a> script can simply output the
|
||||
results: (The Makefile contains the spoiler):</p>
|
||||
<pre><code> out=cat ./check.sh ./prog</code></pre>
|
||||
<p>Interestingly, and a spoiler here: macOS and FreeBSD implement the common
|
||||
@@ -423,7 +423,7 @@ Input should be less than ten million octets “toavoidthisproblem”.</p>
|
||||
No whitespace was harmed in the creation of this program.
|
||||
All your base belong to us, but the constants seem a bit … off?</p>
|
||||
<h3 id="bonus">Bonus</h3>
|
||||
<p>The script <a href="cow.sh">cow.sh</a> provides a closer analog, and perhaps a more useful
|
||||
<p>The script <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/burton/cow.sh">cow.sh</a> provides a closer analog, and perhaps a more useful
|
||||
interface.</p>
|
||||
<p>Included is a version without compilation warnings:</p>
|
||||
<pre><code> cc -Wall -Wextra -Weverything -pedantic -include stdio.h -o prog.clean prog.clean.c</code></pre>
|
||||
|
||||
@@ -132,14 +132,14 @@ is too long, and 2 if the command-line arguments are missing.
|
||||
|
||||
### Helper scripts:
|
||||
|
||||
- [getwords.sh](getwords.sh)
|
||||
- [getwords.sh](%%REPO_URL%%/2019/ciura/getwords.sh)
|
||||
|
||||
`./getwords.sh LANGUAGE_CODE`
|
||||
|
||||
outputs a sorted list of unique words in a given language, one per line. It
|
||||
requires `aspell` with a dictionary for _LANGUAGE_CODE_.
|
||||
|
||||
- [wrapprog.py](wrapprog.py)
|
||||
- [wrapprog.py](%%REPO_URL%%/2019/ciura/wrapprog.py)
|
||||
|
||||
`./wrapprog.py LETTERS [N]`
|
||||
|
||||
@@ -148,8 +148,9 @@ is too long, and 2 if the command-line arguments are missing.
|
||||
it finishes the job faster than `prog` when there are millions of perfect
|
||||
pangrams. It requires a UTF-8 locale.
|
||||
|
||||
- [de.sh](de.sh), [en.sh](en.sh), [fr.sh](fr.sh), [it.sh](it.sh),
|
||||
[pl.sh](pl.sh), and [ru.sh](ru.sh) output German,
|
||||
- [de.sh](%%REPO_URL%%/2019/ciura/de.sh), [en.sh](%%REPO_URL%%/2019/ciura/en.sh),
|
||||
[fr.sh](%%REPO_URL%%/2019/ciura/fr.sh), [it.sh](%%REPO_URL%%/2019/ciura/it.sh),
|
||||
[pl.sh](%%REPO_URL%%/2019/ciura/pl.sh), and [ru.sh](%%REPO_URL%%/2019/ciura/ru.sh) output German,
|
||||
English, French, Italian, Polish, and Russian perfect pangrams, respectively.
|
||||
They require a UTF-8 locale.
|
||||
|
||||
@@ -162,7 +163,7 @@ among the programs that won IOCCC in the past), and _obscure bugs_ (see
|
||||
the questions about Linux core dumps below).
|
||||
|
||||
To a casual eye, this entry may look similar to
|
||||
[2005/klausler](../../2005/klausler/index.html).
|
||||
[2005/klausler](%%REPO_URL%%/2005/klausler/index.html).
|
||||
However, `prog` is internationalized and way faster. On my machine,
|
||||
`./klausler abcdefghijklmnopqrstuvwxyz` printed only 3,965 perfect
|
||||
pangrams until I killed it after 144 hours running, while the
|
||||
@@ -173,7 +174,7 @@ the example from section [What is this?](#wit) finished in 1.35
|
||||
seconds. On the other hand, `prog` can only output series of words
|
||||
with non-repeating characters, unlike `klausler`.
|
||||
|
||||
In contrast to [prog.alt.c](prog.alt.c), [prog.c](prog.c) does not call
|
||||
In contrast to [prog.alt.c](%%REPO_URL%%/2019/ciura/prog.alt.c), [prog.c](%%REPO_URL%%/2019/ciura/prog.c) does not call
|
||||
`fflush(stdout)` after outputting each line, thus running faster.
|
||||
I am grateful to Witold Jarnicki for suggesting this change.
|
||||
The original `prog` finished the example above in 100 minutes
|
||||
@@ -201,8 +202,8 @@ by without `goto M` and `goto H`, I challenge the adherents of
|
||||
structured programming to refactor `goto T`, which jumps back into a
|
||||
nested `if` block.
|
||||
|
||||
With the supplied [Makefile](Makefile), both `gcc` and `clang` compile
|
||||
[prog.c](prog.c) without warnings in C11 and C99 mode. For a clean
|
||||
With the supplied [Makefile](%%REPO_URL%%/2019/ciura/Makefile), both `gcc` and `clang` compile
|
||||
[prog.c](%%REPO_URL%%/2019/ciura/prog.c) without warnings in C11 and C99 mode. For a clean
|
||||
compilation with `gcc -std=c90`, add `-Wno-format` to
|
||||
`CSILENCE` in `Makefile`.
|
||||
|
||||
|
||||
@@ -451,18 +451,19 @@ unlimited. The characters in <code>LETTERS</code> must not repeat. The length of
|
||||
is too long, and 2 if the command-line arguments are missing.</p>
|
||||
<h3 id="helper-scripts">Helper scripts:</h3>
|
||||
<ul>
|
||||
<li><p><a href="getwords.sh">getwords.sh</a></p>
|
||||
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/getwords.sh">getwords.sh</a></p>
|
||||
<p><code>./getwords.sh LANGUAGE_CODE</code></p>
|
||||
<p>outputs a sorted list of unique words in a given language, one per line. It
|
||||
requires <code>aspell</code> with a dictionary for <em>LANGUAGE_CODE</em>.</p></li>
|
||||
<li><p><a href="wrapprog.py">wrapprog.py</a></p>
|
||||
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/wrapprog.py">wrapprog.py</a></p>
|
||||
<p><code>./wrapprog.py LETTERS [N]</code></p>
|
||||
<p>works similarly to <code>./prog LETTERS [N]</code> except that it merges pangrams
|
||||
before passing them to <code>prog</code> and expands them in <code>prog</code>’s output. This way,
|
||||
it finishes the job faster than <code>prog</code> when there are millions of perfect
|
||||
pangrams. It requires a UTF-8 locale.</p></li>
|
||||
<li><p><a href="de.sh">de.sh</a>, <a href="en.sh">en.sh</a>, <a href="fr.sh">fr.sh</a>, <a href="it.sh">it.sh</a>,
|
||||
<a href="pl.sh">pl.sh</a>, and <a href="ru.sh">ru.sh</a> output German,
|
||||
<li><p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/de.sh">de.sh</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/en.sh">en.sh</a>,
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/fr.sh">fr.sh</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/it.sh">it.sh</a>,
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/pl.sh">pl.sh</a>, and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/ru.sh">ru.sh</a> output German,
|
||||
English, French, Italian, Polish, and Russian perfect pangrams, respectively.
|
||||
They require a UTF-8 locale.</p></li>
|
||||
</ul>
|
||||
@@ -472,7 +473,7 @@ They require a UTF-8 locale.</p></li>
|
||||
among the programs that won IOCCC in the past), and <em>obscure bugs</em> (see
|
||||
the questions about Linux core dumps below).</p>
|
||||
<p>To a casual eye, this entry may look similar to
|
||||
<a href="../../2005/klausler/index.html">2005/klausler</a>.
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/klausler/index.html">2005/klausler</a>.
|
||||
However, <code>prog</code> is internationalized and way faster. On my machine,
|
||||
<code>./klausler abcdefghijklmnopqrstuvwxyz</code> printed only 3,965 perfect
|
||||
pangrams until I killed it after 144 hours running, while the
|
||||
@@ -482,7 +483,7 @@ finished in 62 minutes, reporting 1,640,569,315 perfect pangrams, and
|
||||
the example from section <a href="#wit">What is this?</a> finished in 1.35
|
||||
seconds. On the other hand, <code>prog</code> can only output series of words
|
||||
with non-repeating characters, unlike <code>klausler</code>.</p>
|
||||
<p>In contrast to <a href="prog.alt.c">prog.alt.c</a>, <a href="prog.c">prog.c</a> does not call
|
||||
<p>In contrast to <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/prog.alt.c">prog.alt.c</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/prog.c">prog.c</a> does not call
|
||||
<code>fflush(stdout)</code> after outputting each line, thus running faster.
|
||||
I am grateful to Witold Jarnicki for suggesting this change.
|
||||
The original <code>prog</code> finished the example above in 100 minutes
|
||||
@@ -504,8 +505,8 @@ have no perfect pangrams.</p>
|
||||
by without <code>goto M</code> and <code>goto H</code>, I challenge the adherents of
|
||||
structured programming to refactor <code>goto T</code>, which jumps back into a
|
||||
nested <code>if</code> block.</p>
|
||||
<p>With the supplied <a href="Makefile">Makefile</a>, both <code>gcc</code> and <code>clang</code> compile
|
||||
<a href="prog.c">prog.c</a> without warnings in C11 and C99 mode. For a clean
|
||||
<p>With the supplied <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/Makefile">Makefile</a>, both <code>gcc</code> and <code>clang</code> compile
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/prog.c">prog.c</a> without warnings in C11 and C99 mode. For a clean
|
||||
compilation with <code>gcc -std=c90</code>, add <code>-Wno-format</code> to
|
||||
<code>CSILENCE</code> in <code>Makefile</code>.</p>
|
||||
<!--
|
||||
|
||||
@@ -27,7 +27,7 @@ to a one-liner, still producing files in the UNIX compress format, albeit
|
||||
sacrificing the compression ratio?
|
||||
|
||||
Can you explain why the `/dev/zero` file compresses identically by the entry and
|
||||
the standard `compress(1)` tool (see [try.sh](try.sh)), but the text file
|
||||
the standard `compress(1)` tool (see [try.sh](%%REPO_URL%%/2019/diels-grabsch1/try.sh)), but the text file
|
||||
compresses differently? The judges know. :)
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ compresses differently? The judges know. :)
|
||||
diff -s guidelines.txt guidelines2.txt
|
||||
```
|
||||
|
||||
Of course you can also use [2015/mills2](../../2015/mills2/mills2.c) instead of
|
||||
Of course you can also use [2015/mills2](%%REPO_URL%%/2015/mills2/mills2.c) instead of
|
||||
`zcat` to verify the output file. The achieved compression ratio roughly matches
|
||||
that of the classic Unix `compress(1)` tool. And the source code is very
|
||||
compressed, too: It has exactly the same size as the paragraph you are reading
|
||||
|
||||
@@ -389,7 +389,7 @@ to qualify for the Best Short Program award! That said, can you compress it down
|
||||
to a one-liner, still producing files in the UNIX compress format, albeit
|
||||
sacrificing the compression ratio?</p>
|
||||
<p>Can you explain why the <code>/dev/zero</code> file compresses identically by the entry and
|
||||
the standard <code>compress(1)</code> tool (see <a href="try.sh">try.sh</a>), but the text file
|
||||
the standard <code>compress(1)</code> tool (see <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/diels-grabsch1/try.sh">try.sh</a>), but the text file
|
||||
compresses differently? The judges know. :)</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<h3 id="a-tiny-compress-tool">A tiny “compress” tool:</h3>
|
||||
@@ -400,7 +400,7 @@ compresses differently? The judges know. :)</p>
|
||||
<h4 id="check-for-correctness">Check for correctness:</h4>
|
||||
<pre><code> zcat guidelines.txt.Z > guidelines2.txt
|
||||
diff -s guidelines.txt guidelines2.txt</code></pre>
|
||||
<p>Of course you can also use <a href="../../2015/mills2/mills2.c">2015/mills2</a> instead of
|
||||
<p>Of course you can also use <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/mills2/mills2.c">2015/mills2</a> instead of
|
||||
<code>zcat</code> to verify the output file. The achieved compression ratio roughly matches
|
||||
that of the classic Unix <code>compress(1)</code> tool. And the source code is very
|
||||
compressed, too: It has exactly the same size as the paragraph you are reading
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## To build:
|
||||
%%REPO_URL%%/2019/lynn/## To build:
|
||||
|
||||
``` <!---sh-->
|
||||
make
|
||||
@@ -35,8 +35,8 @@ the program and the script.
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
[1991/davidguy](../../1991/davidguy/index.html),
|
||||
[2011/blakely](../../2011/blakely/index.html), ...
|
||||
[1991/davidguy](%%REPO_URL%%/1991/davidguy/index.html),
|
||||
[2011/blakely](%%REPO_URL%%/2011/blakely/index.html), ...
|
||||
|
||||
...This entry likely concludes the IOCCC category "Cellular automata simulators";
|
||||
it would be very hard to beat it on its field.
|
||||
@@ -135,7 +135,7 @@ is the current macrocell (`L`) and which zoom Scale you are watching (`S`).
|
||||
|
||||
This entry is quite portable hopefully on most modern platforms. It assumes X
|
||||
Window support of course. More than 2GB of memory is recommended. Configuration
|
||||
through [Makefile](Makefile) is provided for the display windows size and for
|
||||
through [Makefile](%%REPO_URL%%/2019/dogon/Makefile) is provided for the display windows size and for
|
||||
the memory usage. The Makefile provided configuration (`Z=0x20000000`) will need a
|
||||
system with 4GB DRAM to run nicely. There are several other salient assumptions
|
||||
though:
|
||||
@@ -228,7 +228,7 @@ includes some famous name dropping and documents itself as usual.
|
||||
### Further spoilers, engineering, and obfuscation galore:
|
||||
|
||||
Those wait for you, curious and intrepid reader, in the attached
|
||||
[apholife.c](apholife.c) file, which is a partially obfuscated version of the
|
||||
[apholife.c](%%REPO_URL%%/2019/ciura/apholife.c) file, which is a partially obfuscated version of the
|
||||
program I wrote with a lot of helpful annotations and comments for myself and
|
||||
posterity, revealing some of the magic under the hood. This program is also a
|
||||
somewhat improved version which uses `ldexp()`s in the draw routine and has
|
||||
|
||||
@@ -377,7 +377,7 @@ Location: <a href="../../location.html#IL">IL</a> - <em>State of Israel</em> (<e
|
||||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
|
||||
<!-- BEFORE: 1st line of markdown file: 2019/dogon/README.md -->
|
||||
<h2 id="to-build">To build:</h2>
|
||||
<p>https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/## To build:</p>
|
||||
<pre><code> make</code></pre>
|
||||
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
|
||||
<p>The current status of this entry is:</p>
|
||||
@@ -390,8 +390,8 @@ Location: <a href="../../location.html#IL">IL</a> - <em>State of Israel</em> (<e
|
||||
<p>Make sure that you keep focus of windows in mind when going back and forth to
|
||||
the program and the script.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p><a href="../../1991/davidguy/index.html">1991/davidguy</a>,
|
||||
<a href="../../2011/blakely/index.html">2011/blakely</a>, …</p>
|
||||
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1991/davidguy/index.html">1991/davidguy</a>,
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/blakely/index.html">2011/blakely</a>, …</p>
|
||||
<p>…This entry likely concludes the IOCCC category “Cellular automata simulators”;
|
||||
it would be very hard to beat it on its field.</p>
|
||||
<p>FYI: The <code>.mc</code> extension stands for <code>Golly macrocell</code> format.</p>
|
||||
@@ -469,7 +469,7 @@ is the current macrocell (<code>L</code>) and which zoom Scale you are watching
|
||||
<h3 id="portability-issues">Portability issues</h3>
|
||||
<p>This entry is quite portable hopefully on most modern platforms. It assumes X
|
||||
Window support of course. More than 2GB of memory is recommended. Configuration
|
||||
through <a href="Makefile">Makefile</a> is provided for the display windows size and for
|
||||
through <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/dogon/Makefile">Makefile</a> is provided for the display windows size and for
|
||||
the memory usage. The Makefile provided configuration (<code>Z=0x20000000</code>) will need a
|
||||
system with 4GB DRAM to run nicely. There are several other salient assumptions
|
||||
though:</p>
|
||||
@@ -543,7 +543,7 @@ character juxtaposed against a very ancient one, not to mention the program
|
||||
includes some famous name dropping and documents itself as usual.</p>
|
||||
<h3 id="further-spoilers-engineering-and-obfuscation-galore">Further spoilers, engineering, and obfuscation galore:</h3>
|
||||
<p>Those wait for you, curious and intrepid reader, in the attached
|
||||
<a href="apholife.c">apholife.c</a> file, which is a partially obfuscated version of the
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/ciura/apholife.c">apholife.c</a> file, which is a partially obfuscated version of the
|
||||
program I wrote with a lot of helpful annotations and comments for myself and
|
||||
posterity, revealing some of the magic under the hood. This program is also a
|
||||
somewhat improved version which uses <code>ldexp()</code>s in the draw routine and has
|
||||
|
||||
@@ -91,7 +91,7 @@ directory which you'll have to delete manually. This is also discussed in
|
||||
|
||||
## Alternate code:
|
||||
|
||||
An alternate version of this entry, [prog.alt.c](prog.alt.c), is provided. This
|
||||
An alternate version of this entry, [prog.alt.c](%%REPO_URL%%/2019/duble/prog.alt.c), is provided. This
|
||||
alternate code might not work as well in macOS.
|
||||
|
||||
|
||||
@@ -228,9 +228,9 @@ IMPORTANT NOTES:
|
||||
so any peer reaching the session should have a terminal with the same
|
||||
size or larger.
|
||||
|
||||
### [prog.c](prog.c) vs [prog.alt.c](prog.alt.c)
|
||||
### [prog.c](%%REPO_URL%%/2019/duble/prog.c) vs [prog.alt.c](%%REPO_URL%%/2019/duble/prog.alt.c)
|
||||
|
||||
The file [prog.alt.c](prog.alt.c) is the one I submitted.
|
||||
The file [prog.alt.c](%%REPO_URL%%/2019/duble/prog.alt.c) is the one I submitted.
|
||||
|
||||
The judges proposed a small update: the program was using macro `FD_SET` inside an
|
||||
expression, which breaks compilation on macOS. Wrapping this macro into a
|
||||
@@ -240,13 +240,13 @@ However, that was not enough to make the program work on macOS. If you analyse
|
||||
the program you will see that it heavily relies on OS resources. And, for this
|
||||
first version of the program, you even needed to increase default `sysctl`
|
||||
parameters to make it work on FreeBSD (this was the purpose of file
|
||||
[check-os.sh](check-os.sh)). I tried hard to tune macOS the same, but failed.
|
||||
[check-os.sh](%%REPO_URL%%/2019/duble/check-os.sh)). I tried hard to tune macOS the same, but failed.
|
||||
|
||||
The simple fact the Judges proposed this update meant they wish it could work on
|
||||
Mac. And if the judges wish something, it **has to** be done. ;) So I
|
||||
refactored a little more the program to reduce OS resources consumption. Or
|
||||
maybe not reduce consumption, but consume them differently... And I obtained
|
||||
[prog.c](prog.c). With this version, no need to touch `sysctl` parameters, and
|
||||
[prog.c](%%REPO_URL%%/2019/duble/prog.c). With this version, no need to touch `sysctl` parameters, and
|
||||
it works on macOS too! I must confess it was challenging to remain below the
|
||||
size limit with this little change.
|
||||
|
||||
|
||||
@@ -422,7 +422,7 @@ in the beginning this will also happen. This is discussed in
|
||||
directory which you’ll have to delete manually. This is also discussed in
|
||||
<a href="../../bugs.html#2019_duble">2019 duble bugs</a>.</p>
|
||||
<h2 id="alternate-code">Alternate code:</h2>
|
||||
<p>An alternate version of this entry, <a href="prog.alt.c">prog.alt.c</a>, is provided. This
|
||||
<p>An alternate version of this entry, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.alt.c">prog.alt.c</a>, is provided. This
|
||||
alternate code might not work as well in macOS.</p>
|
||||
<h3 id="alternate-build">Alternate build:</h3>
|
||||
<pre><code> make alt</code></pre>
|
||||
@@ -510,8 +510,8 @@ with a different size!</strong></li>
|
||||
so any peer reaching the session should have a terminal with the same
|
||||
size or larger.</li>
|
||||
</ul>
|
||||
<h3 id="prog.c-vs-prog.alt.c"><a href="prog.c">prog.c</a> vs <a href="prog.alt.c">prog.alt.c</a></h3>
|
||||
<p>The file <a href="prog.alt.c">prog.alt.c</a> is the one I submitted.</p>
|
||||
<h3 id="prog.c-vs-prog.alt.c"><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.c">prog.c</a> vs <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.alt.c">prog.alt.c</a></h3>
|
||||
<p>The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.alt.c">prog.alt.c</a> is the one I submitted.</p>
|
||||
<p>The judges proposed a small update: the program was using macro <code>FD_SET</code> inside an
|
||||
expression, which breaks compilation on macOS. Wrapping this macro into a
|
||||
function was enough to fix this compilation issue.</p>
|
||||
@@ -519,12 +519,12 @@ function was enough to fix this compilation issue.</p>
|
||||
the program you will see that it heavily relies on OS resources. And, for this
|
||||
first version of the program, you even needed to increase default <code>sysctl</code>
|
||||
parameters to make it work on FreeBSD (this was the purpose of file
|
||||
<a href="check-os.sh">check-os.sh</a>). I tried hard to tune macOS the same, but failed.</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/check-os.sh">check-os.sh</a>). I tried hard to tune macOS the same, but failed.</p>
|
||||
<p>The simple fact the Judges proposed this update meant they wish it could work on
|
||||
Mac. And if the judges wish something, it <strong>has to</strong> be done. ;) So I
|
||||
refactored a little more the program to reduce OS resources consumption. Or
|
||||
maybe not reduce consumption, but consume them differently… And I obtained
|
||||
<a href="prog.c">prog.c</a>. With this version, no need to touch <code>sysctl</code> parameters, and
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/duble/prog.c">prog.c</a>. With this version, no need to touch <code>sysctl</code> parameters, and
|
||||
it works on macOS too! I must confess it was challenging to remain below the
|
||||
size limit with this little change.</p>
|
||||
<!--
|
||||
|
||||
@@ -35,7 +35,7 @@ If you have `gdb(1)` installed:
|
||||
```
|
||||
|
||||
Note that in macOS installing `gdb(1)` takes multiple steps - it's not just a
|
||||
matter of installing `gdb(1)` and that's that. The [try.sh](try.sh) script has
|
||||
matter of installing `gdb(1)` and that's that. The [try.sh](%%REPO_URL%%/2019/endoh/try.sh) script has
|
||||
only been tested with linux.
|
||||
|
||||
You might also wish to try:
|
||||
|
||||
@@ -391,7 +391,7 @@ this entry because it is SUPPOSED to crash and it needs debugging symbols.</p>
|
||||
<p>If you have <code>gdb(1)</code> installed:</p>
|
||||
<pre><code> ./try.sh</code></pre>
|
||||
<p>Note that in macOS installing <code>gdb(1)</code> takes multiple steps - it’s not just a
|
||||
matter of installing <code>gdb(1)</code> and that’s that. The <a href="try.sh">try.sh</a> script has
|
||||
matter of installing <code>gdb(1)</code> and that’s that. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/endoh/try.sh">try.sh</a> script has
|
||||
only been tested with linux.</p>
|
||||
<p>You might also wish to try:</p>
|
||||
<pre><code> gdb ./prog || lldb ./prog</code></pre>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
```
|
||||
|
||||
|
||||
NOTE: `play`, which [try.sh](try.sh) uses, comes from SoX, the Swiss Army Knife
|
||||
NOTE: `play`, which [try.sh](%%REPO_URL%%/2019/giles/try.sh) uses, comes from SoX, the Swiss Army Knife
|
||||
of sound processing programs. If you don't have this installed, see [FAQ 3.10:
|
||||
How do I compile and use an IOCCC entry that requires sound](../../faq.html#sox).
|
||||
|
||||
|
||||
@@ -383,7 +383,7 @@ Location: <a href="../../location.html#AU">AU</a> - <em>Commonwealth of Australi
|
||||
<pre><code> ./prog infile.wav outfile.wav</code></pre>
|
||||
<h2 id="try">Try:</h2>
|
||||
<pre><code> ./try.sh</code></pre>
|
||||
<p>NOTE: <code>play</code>, which <a href="try.sh">try.sh</a> uses, comes from SoX, the Swiss Army Knife
|
||||
<p>NOTE: <code>play</code>, which <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/giles/try.sh">try.sh</a> uses, comes from SoX, the Swiss Army Knife
|
||||
of sound processing programs. If you don’t have this installed, see <a href="../../faq.html#sox">FAQ 3.10:
|
||||
How do I compile and use an IOCCC entry that requires sound</a>.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
|
||||
+8
-7
@@ -70,7 +70,7 @@ Build the compiler:
|
||||
|
||||
#### Fibonacci numbers:
|
||||
|
||||
Test the compiler on [fib.hs](fib.hs):
|
||||
Test the compiler on [fib.hs](%%REPO_URL%%/2019/lynn/fib.hs):
|
||||
|
||||
``` <!---sh-->
|
||||
(./prog < fib.hs ; cat prog.c) > fib.c
|
||||
@@ -78,7 +78,8 @@ Test the compiler on [fib.hs](fib.hs):
|
||||
|
||||
Compiling the output produces a binary that prints the 30th Fibonacci number.
|
||||
|
||||
The file [ghcfib.hs](ghcfib.hs) includes [fib.hs](fib.hs) with some glue code,
|
||||
The file [ghcfib.hs](%%REPO_URL%%/2019/lynn/ghcfib.hs)
|
||||
includes [fib.hs](%%REPO_URL%%/2019/lynn/fib.hs) with some glue code,
|
||||
and shows GHC also accepts our subset of Haskell:
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -89,7 +90,7 @@ and shows GHC also accepts our subset of Haskell:
|
||||
#### Self-hosting compiler:
|
||||
|
||||
To avoid spoiling this entry by revealing the original Haskell source, we
|
||||
instead provide [hint.hs](hint.hs), the output of a certain stage of the
|
||||
instead provide [hint.hs](%%REPO_URL%%/2019/lynn/hint.hs), the output of a certain stage of the
|
||||
compiler when run on itself. This intermediate output is hopefully difficult to
|
||||
understand, yet is accepted by our compiler:
|
||||
|
||||
@@ -102,7 +103,7 @@ understand, yet is accepted by our compiler:
|
||||
The output program behaves like the compiler itself.
|
||||
|
||||
Unlike the original source from which it is derived, GHC fails to compile
|
||||
[hint.hs](hint.hs). This is because values have been replaced with their [Scott
|
||||
[hint.hs](%%REPO_URL%%/2019/lynn/hint.hs). This is because values have been replaced with their [Scott
|
||||
encodings](https://en.wikipedia.org/wiki/Mogensen-Scott_encoding)
|
||||
by this stage, which messes up type-checks; we'd need `equirecursive` types for
|
||||
it to work.
|
||||
@@ -110,7 +111,7 @@ it to work.
|
||||
|
||||
#### Regexes:
|
||||
|
||||
The file [lol.hs](lol.hs) contains an adaptation of [Doug McIlroy's elegant code from
|
||||
The file [lol.hs](%%REPO_URL%%/2019/lynn/lol.hs) contains an adaptation of [Doug McIlroy's elegant code from
|
||||
"Enumerating the strings of regular
|
||||
languages"](https://www.cs.dartmouth.edu/~doug/nfa.pdf). We exercise it by
|
||||
showing the first entries of the length-ordered list of all strings consisting
|
||||
@@ -131,7 +132,7 @@ A GHC wrapper is provided:
|
||||
|
||||
### Strongly-connected components:
|
||||
|
||||
See [scc.hs](scc.hs) (and its GHC wrapper [ghcscc.hs](ghcscc.hs)) for an elegant
|
||||
See [scc.hs](%%REPO_URL%%/2019/lynn/scc.hs) (and its GHC wrapper [ghcscc.hs](%%REPO_URL%%/2019/lynn/ghcscc.hs)) for an elegant
|
||||
way to print the strongly-connected components of a graph in reverse topological
|
||||
order.
|
||||
|
||||
@@ -280,7 +281,7 @@ represent the integer `n` with a term equivalent to `Y(BT)n`; it works because
|
||||
* A sentinel in the heap often confused me, so ought to confuse others.
|
||||
|
||||
Other obfuscation techniques are better appreciated after decoding the
|
||||
compiler. See [hint.hs](hint.hs).
|
||||
compiler. See [hint.hs](%%REPO_URL%%/2019/lynn/hint.hs).
|
||||
|
||||
* Mercilessly point-free. Everything is a combinator.
|
||||
* Scott encoding. Everything is a combinator.
|
||||
|
||||
@@ -411,15 +411,16 @@ trace of those scary <code>unsafeThisAndThat</code> functions. All functions mus
|
||||
<pre><code> cc -o prog prog.c</code></pre>
|
||||
<h3 id="demos">Demos:</h3>
|
||||
<h4 id="fibonacci-numbers">Fibonacci numbers:</h4>
|
||||
<p>Test the compiler on <a href="fib.hs">fib.hs</a>:</p>
|
||||
<p>Test the compiler on <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/fib.hs">fib.hs</a>:</p>
|
||||
<pre><code> (./prog < fib.hs ; cat prog.c) > fib.c</code></pre>
|
||||
<p>Compiling the output produces a binary that prints the 30th Fibonacci number.</p>
|
||||
<p>The file <a href="ghcfib.hs">ghcfib.hs</a> includes <a href="fib.hs">fib.hs</a> with some glue code,
|
||||
<p>The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/ghcfib.hs">ghcfib.hs</a>
|
||||
includes <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/fib.hs">fib.hs</a> with some glue code,
|
||||
and shows GHC also accepts our subset of Haskell:</p>
|
||||
<pre><code> ghc ghcfib.hs</code></pre>
|
||||
<h4 id="self-hosting-compiler">Self-hosting compiler:</h4>
|
||||
<p>To avoid spoiling this entry by revealing the original Haskell source, we
|
||||
instead provide <a href="hint.hs">hint.hs</a>, the output of a certain stage of the
|
||||
instead provide <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/hint.hs">hint.hs</a>, the output of a certain stage of the
|
||||
compiler when run on itself. This intermediate output is hopefully difficult to
|
||||
understand, yet is accepted by our compiler:</p>
|
||||
<pre><code> (./prog < hint.hs ; cat prog.c) > hint.c
|
||||
@@ -427,12 +428,12 @@ understand, yet is accepted by our compiler:</p>
|
||||
./hint</code></pre>
|
||||
<p>The output program behaves like the compiler itself.</p>
|
||||
<p>Unlike the original source from which it is derived, GHC fails to compile
|
||||
<a href="hint.hs">hint.hs</a>. This is because values have been replaced with their <a href="https://en.wikipedia.org/wiki/Mogensen-Scott_encoding">Scott
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/hint.hs">hint.hs</a>. This is because values have been replaced with their <a href="https://en.wikipedia.org/wiki/Mogensen-Scott_encoding">Scott
|
||||
encodings</a>
|
||||
by this stage, which messes up type-checks; we’d need <code>equirecursive</code> types for
|
||||
it to work.</p>
|
||||
<h4 id="regexes">Regexes:</h4>
|
||||
<p>The file <a href="lol.hs">lol.hs</a> contains an adaptation of <a href="https://www.cs.dartmouth.edu/~doug/nfa.pdf">Doug McIlroy’s elegant code from
|
||||
<p>The file <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/lol.hs">lol.hs</a> contains an adaptation of <a href="https://www.cs.dartmouth.edu/~doug/nfa.pdf">Doug McIlroy’s elegant code from
|
||||
“Enumerating the strings of regular
|
||||
languages”</a>. We exercise it by
|
||||
showing the first entries of the length-ordered list of all strings consisting
|
||||
@@ -443,7 +444,7 @@ of the characters <code>a</code> and <code>b</code> that contain an even number
|
||||
<p>A GHC wrapper is provided:</p>
|
||||
<pre><code> ghc ghclol.hs</code></pre>
|
||||
<h3 id="strongly-connected-components">Strongly-connected components:</h3>
|
||||
<p>See <a href="scc.hs">scc.hs</a> (and its GHC wrapper <a href="ghcscc.hs">ghcscc.hs</a>) for an elegant
|
||||
<p>See <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/scc.hs">scc.hs</a> (and its GHC wrapper <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/ghcscc.hs">ghcscc.hs</a>) for an elegant
|
||||
way to print the strongly-connected components of a graph in reverse topological
|
||||
order.</p>
|
||||
<pre><code> (./prog < scc.hs ; cat prog.c) > scc.c</code></pre>
|
||||
@@ -547,7 +548,7 @@ represent the integer <code>n</code> with a term equivalent to <code>Y(BT)n</cod
|
||||
<li>A sentinel in the heap often confused me, so ought to confuse others.</li>
|
||||
</ul>
|
||||
<p>Other obfuscation techniques are better appreciated after decoding the
|
||||
compiler. See <a href="hint.hs">hint.hs</a>.</p>
|
||||
compiler. See <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/lynn/hint.hs">hint.hs</a>.</p>
|
||||
<ul>
|
||||
<li>Mercilessly point-free. Everything is a combinator.</li>
|
||||
<li>Scott encoding. Everything is a combinator.</li>
|
||||
|
||||
@@ -162,7 +162,7 @@ White](https://www.glyphweb.com/arda/g/gandalf.html) and the [Judges of
|
||||
the IOCCC](../../judges.html).
|
||||
|
||||
Output of `iocccsize`, using the [2019 version of
|
||||
iocccsize](../../2019/iocccsize.c), is carefully selected. For
|
||||
iocccsize](%%REPO_URL%%/2019/iocccsize.c), is carefully selected. For
|
||||
the sake of clarity, I used single letter variables in the code. I also avoided
|
||||
unnecessary use of functions. Like a
|
||||
[tripundra](https://en.wikipedia.org/wiki/Tripundra), this program has three
|
||||
@@ -261,7 +261,7 @@ arrays, so I did it.
|
||||
[Cody Boone Ferguson](../../authors.html#Cody_Boone_Ferguson): I really like that you enjoyed my
|
||||
previous entry. I hope that you will like this entry too. Because I did not
|
||||
want to give too many clues to [the Judges](../../judges.html), I tried to write this
|
||||
entry in a different way than [Most Stellar](../../2018/poikola/index.html), but in this
|
||||
entry in a different way than [Most Stellar](%%REPO_URL%%/2018/poikola/index.html), but in this
|
||||
code there is at least one recycled thing from it. By the way, the answers to
|
||||
the questions I posed: (1) 255. (2) Try to compare binary representations of
|
||||
those `float`s and binary representation of the string "`25th IOCCC!`". (3) I
|
||||
@@ -278,7 +278,7 @@ not match anymore and `goto` jumps to the end of the code.
|
||||
|
||||
I see that one of the [Volker
|
||||
Diels-Grabsch](../../authors.html#Volker_Diels-Grabsch)'s winning entries is
|
||||
awarded the category [Most self-aware](../../2019/diels-grabsch2/prog.c). In last
|
||||
awarded the category [Most self-aware](%%REPO_URL%%/2019/diels-grabsch2/prog.c). In last
|
||||
year, my entry incorporates the [Fletcher's 16
|
||||
algorithm](https://en.wikipedia.org/wiki/Fletcher%27s_checksum#Fletcher-16) to
|
||||
ensure integrity of code. One of my first ideas for this year was to do the same
|
||||
|
||||
@@ -454,7 +454,7 @@ who passed away on fourth of February 2019.</p>
|
||||
<p>So, I followed the rules given by <a href="https://www.glyphweb.com/arda/g/gandalf.html">Gandalf the
|
||||
White</a> and the <a href="../../judges.html">Judges of
|
||||
the IOCCC</a>.</p>
|
||||
<p>Output of <code>iocccsize</code>, using the <a href="../../2019/iocccsize.c">2019 version of
|
||||
<p>Output of <code>iocccsize</code>, using the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/iocccsize.c">2019 version of
|
||||
iocccsize</a>, is carefully selected. For
|
||||
the sake of clarity, I used single letter variables in the code. I also avoided
|
||||
unnecessary use of functions. Like a
|
||||
@@ -521,7 +521,7 @@ arrays, so I did it.</p>
|
||||
<p><a href="../../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a>: I really like that you enjoyed my
|
||||
previous entry. I hope that you will like this entry too. Because I did not
|
||||
want to give too many clues to <a href="../../judges.html">the Judges</a>, I tried to write this
|
||||
entry in a different way than <a href="../../2018/poikola/index.html">Most Stellar</a>, but in this
|
||||
entry in a different way than <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/poikola/index.html">Most Stellar</a>, but in this
|
||||
code there is at least one recycled thing from it. By the way, the answers to
|
||||
the questions I posed: (1) 255. (2) Try to compare binary representations of
|
||||
those <code>float</code>s and binary representation of the string “<code>25th IOCCC!</code>”. (3) I
|
||||
@@ -537,7 +537,7 @@ checksum</a> does
|
||||
not match anymore and <code>goto</code> jumps to the end of the code.</p>
|
||||
<p>I see that one of the <a href="../../authors.html#Volker_Diels-Grabsch">Volker
|
||||
Diels-Grabsch</a>’s winning entries is
|
||||
awarded the category <a href="../../2019/diels-grabsch2/prog.c">Most self-aware</a>. In last
|
||||
awarded the category <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/diels-grabsch2/prog.c">Most self-aware</a>. In last
|
||||
year, my entry incorporates the <a href="https://en.wikipedia.org/wiki/Fletcher%27s_checksum#Fletcher-16">Fletcher’s 16
|
||||
algorithm</a> to
|
||||
ensure integrity of code. One of my first ideas for this year was to do the same
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ Verified to work and compiles without warnings on these environments:
|
||||
|
||||
I tried really hard to make `prog.c` fit in a 80x25 terminal without wrapping.
|
||||
If I were not constrained by space, I would have made an ASCII art out of it.
|
||||
[violet.c](violet.c) is that program, and also comes with the minor benefit of
|
||||
[violet.c](%%REPO_URL%%/2019/yang/violet.c) is that program, and also comes with the minor benefit of
|
||||
supporting lines longer than a million columns depending on `sizeof(int)`.
|
||||
|
||||
Violet is named after [Violet
|
||||
|
||||
@@ -496,7 +496,7 @@ feeds (preserved) and tabs (expanded to 8 spaces).</p>
|
||||
<h3 id="full-version">Full version</h3>
|
||||
<p>I tried really hard to make <code>prog.c</code> fit in a 80x25 terminal without wrapping.
|
||||
If I were not constrained by space, I would have made an ASCII art out of it.
|
||||
<a href="violet.c">violet.c</a> is that program, and also comes with the minor benefit of
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2019/yang/violet.c">violet.c</a> is that program, and also comes with the minor benefit of
|
||||
supporting lines longer than a million columns depending on <code>sizeof(int)</code>.</p>
|
||||
<p>Violet is named after <a href="https://en.wikipedia.org/wiki/Violet_Evergarden">Violet
|
||||
Evergarden</a> in the story with
|
||||
|
||||
Reference in new issue
Block a user