force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem has a recent enough version of `pandoc(1)`. We explain why we insist on `pandoc(1)`. version >= 3.1.12.2 in comments where the $PANDOC_MIN_VERSION is set. Added `--wrap=preserve` as a default argument to `pandoc(1)`. While this change will impact every HTML file generated, we believe this will improve the ability of someone to look at the generated HTML and correlate with the original markdown. Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17" to "1.4.3 2024-03-18". Performed `make www` to achieve all of the above and to generate HTML using the new `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+48
-78
@@ -130,8 +130,8 @@
|
||||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Qiming_HOU">Qiming HOU</a><br>
|
||||
Location: <a href="../../location.html#CN">CN</a> - <em>People’s
|
||||
Republic of China</em> (<em>China</em>) <br><br></li>
|
||||
Location: <a href="../../location.html#CN">CN</a> - <em>People’s Republic of China</em> (<em>China</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -144,20 +144,19 @@ Republic of China</em> (<em>China</em>) <br><br></li>
|
||||
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
|
||||
<p>The current status of this entry is:</p>
|
||||
<pre><code>STATUS: INABIAF - please **DO NOT** fix</code></pre>
|
||||
<p>For more detailed information see <a
|
||||
href="../../bugs.html#2015_hou">2015 hou bugs</a>.</p>
|
||||
<p>For more detailed information see <a href="../../bugs.html#2015_hou">2015 hou bugs</a>.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> something <span class="kw">|</span> <span class="ex">./prog</span></span>
|
||||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> file</span></code></pre></div>
|
||||
<h2 id="try">Try:</h2>
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>A good start for understanding this entry might be <a
|
||||
href="rfc1321.txt">rfc1321.txt</a>. How does it compute this using only
|
||||
a single looping construct? The original reference source code for this
|
||||
algorithm is about 355 lines of code, yet this entry is only 199 lines
|
||||
with one statement per line and it isn’t using lots of macro expansion
|
||||
tricks like the reference code!</p>
|
||||
<p>A good start for understanding this entry might be
|
||||
<a href="rfc1321.txt">rfc1321.txt</a>. How does it compute this using only a
|
||||
single looping construct? The original reference source code for this
|
||||
algorithm is about 355 lines of code, yet this entry is only 199 lines with
|
||||
one statement per line and it isn’t using lots of macro expansion tricks like
|
||||
the reference code!</p>
|
||||
<p>Some things that make you go, “huh?”</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> prog.c <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-c-5</span></span>
|
||||
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> <span class="op"><</span> Makefile <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-c-4</span></span></code></pre></div>
|
||||
@@ -168,108 +167,79 @@ tricks like the reference code!</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p>This looks like a normal C program.</p>
|
||||
<p>Almost everything is a <code>double</code>.</p>
|
||||
<p>There are tell-tale signs like <code>pow(2,(?/12))</code> and
|
||||
<code>exp(-?*?)</code> (names redacted). You can also find a bunch of
|
||||
cosines and polynomial evaluations.</p>
|
||||
<p>There are tell-tale signs like <code>pow(2,(?/12))</code> and <code>exp(-?*?)</code> (names redacted).
|
||||
You can also find a bunch of cosines and polynomial evaluations.</p>
|
||||
<p>It looks like a ????? ???????????, right?</p>
|
||||
<p>Run and find out.</p>
|
||||
<h3 id="why-obfuscated">Why obfuscated</h3>
|
||||
<p>Some poor scripting folks only have access to doubles (Jav?script,
|
||||
L?a, BA?IC, etc.).</p>
|
||||
<p>As a C programmer, I feel obliged to show a gesture of sympathy, to
|
||||
experience their pain and provide an answer.</p>
|
||||
<p>Except when absolutely necessary (<code>printf</code>,
|
||||
<code>int main()</code>, array indexing), there isn’t a single integer.
|
||||
Even <code>getchar()</code> and <code>EOF</code> are immediately
|
||||
converted.</p>
|
||||
<p>Since <code>bool</code> counts as an integer type too, there is no
|
||||
boolean either. No comparison, no <code>if</code>, no <code>?:</code>,
|
||||
no <code>||</code> <code>&&</code>. Everything is done in a
|
||||
single loop that terminates on <code>printf(3)</code>. Straight up
|
||||
arithmetic.</p>
|
||||
<p><code>floor(3)</code> and <code>ceil(3)</code> are technically
|
||||
double-to-double functions, but they feel like cheating. Yes
|
||||
<code>cos(3)</code>, no <code>floor(3)</code>.</p>
|
||||
<p>Some poor scripting folks only have access to doubles (Jav?script, L?a, BA?IC,
|
||||
etc.).</p>
|
||||
<p>As a C programmer, I feel obliged to show a gesture of sympathy, to experience
|
||||
their pain and provide an answer.</p>
|
||||
<p>Except when absolutely necessary (<code>printf</code>, <code>int main()</code>, array indexing), there
|
||||
isn’t a single integer. Even <code>getchar()</code> and <code>EOF</code> are immediately converted.</p>
|
||||
<p>Since <code>bool</code> counts as an integer type too, there is no boolean either. No
|
||||
comparison, no <code>if</code>, no <code>?:</code>, no <code>||</code> <code>&&</code>. Everything is done in a single loop
|
||||
that terminates on <code>printf(3)</code>. Straight up arithmetic.</p>
|
||||
<p><code>floor(3)</code> and <code>ceil(3)</code> are technically double-to-double functions, but they feel
|
||||
like cheating. Yes <code>cos(3)</code>, no <code>floor(3)</code>.</p>
|
||||
<h3 id="limitations">Limitations</h3>
|
||||
<p>Hard requirements:</p>
|
||||
<ul>
|
||||
<li><p>The platform must implement the <code>double</code> type as
|
||||
IEEE754-compliant 64-bit floating point numbers. The 80-bit intermediate
|
||||
format used by x87 is considered as an violation of this. The code
|
||||
should print an error message on such platforms.</p></li>
|
||||
<li><p>The program must start with the CPU / FPU in round-to-nearest
|
||||
mode.</p></li>
|
||||
<li><p>The platform must implement the <code>double</code> type as IEEE754-compliant 64-bit
|
||||
floating point numbers. The 80-bit intermediate format used by x87 is
|
||||
considered as an violation of this. The code should print an error message on
|
||||
such platforms.</p></li>
|
||||
<li><p>The program must start with the CPU / FPU in round-to-nearest mode.</p></li>
|
||||
</ul>
|
||||
<p>Soft requirements:</p>
|
||||
<ul>
|
||||
<li><p>The compiler must respect <code>volatile</code>. The code is
|
||||
formatted to warn about that, though.</p></li>
|
||||
<li><p>The printed result is only correct on little-endian machines. The
|
||||
program takes care to warn about this issue after printing an incorrect
|
||||
big-endian result. Error messages become garbled, though.</p></li>
|
||||
<li><p>The compiler must respect <code>volatile</code>. The code is formatted to warn about
|
||||
that, though.</p></li>
|
||||
<li><p>The printed result is only correct on little-endian machines. The program
|
||||
takes care to warn about this issue after printing an incorrect big-endian
|
||||
result. Error messages become garbled, though.</p></li>
|
||||
</ul>
|
||||
<p>Tested platforms:</p>
|
||||
<ul>
|
||||
<li>Linux 3.18.7, Rasperberry Pi 2, clang 3.0-6.2, (works)</li>
|
||||
<li>Linux 3.18.7, Rasperberry Pi 2, gcc 4.6.3, (works)</li>
|
||||
<li>Mac OS X 10, x64, Apple LLVM version 6.1.0 (clang-602.0.53),
|
||||
(works)</li>
|
||||
<li>Mac OS X 10, x64, Apple LLVM version 6.1.0 (clang-602.0.53), (works)</li>
|
||||
<li>Windows 8.1, x86, MSVC 2012 (works)<br />
|
||||
</li>
|
||||
<li>Windows 8.1, x64, MSVC 2012 (works)</li>
|
||||
<li>Windows 8.1, x86, MinGW gcc 4.6.2 (fails, prints error message)</li>
|
||||
<li>Windows 8.1, x86, MinGW gcc 4.6.2 with -msse2 -mfpmath=sse
|
||||
(works)</li>
|
||||
<li>Windows 8.1, x86, MinGW gcc 4.6.2 with -msse2 -mfpmath=sse (works)</li>
|
||||
</ul>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
|
||||
License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
|
||||
Reserved. You are free to share and adapt this file under the terms of
|
||||
this license:</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
You are free to share and adapt this file under the terms of 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>
|
||||
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<!-- 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 -->
|
||||
|
||||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
<h1 id="inventory-for-2015hou"><a name="inventory"></a>Inventory for
|
||||
2015/hou</h1>
|
||||
<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="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.c">prog.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.orig.c">prog.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/try.sh">try.sh</a>
|
||||
- how to run</li>
|
||||
<li><a href="rfc1321.txt">rfc1321.txt</a> - RFC 1321 - MD5
|
||||
Message-Digest Algorithm</li>
|
||||
<li><a href="2015_hou.tar.bz2">2015_hou.tar.bz2</a> - download entry
|
||||
source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.c">prog.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/prog.orig.c">prog.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/try.sh">try.sh</a> - how to run</li>
|
||||
<li><a href="rfc1321.txt">rfc1321.txt</a> - RFC 1321 - MD5 Message-Digest Algorithm</li>
|
||||
<li><a href="2015_hou.tar.bz2">2015_hou.tar.bz2</a> - 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/hou/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/.gitignore">.gitignore</a>
|
||||
- list of files that should not be committed under git</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>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/hou/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/hou/README.md">README.md</a> - markdown source for index.html</li>
|
||||
<li><a href="large">large</a> - large input data</li>
|
||||
</ul>
|
||||
|
||||
|
||||
Reference in new issue
Block a user