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:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+76 -146
View File
@@ -129,9 +129,9 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Anthony_C_Howe">Anthony C.
Howe</a><br> Location: <a href="../../location.html#CA">CA</a> -
<em>Canada</em> <br><br></li>
<li>Name: <a href="../../authors.html#Anthony_C_Howe">Anthony C. Howe</a><br>
Location: <a href="../../location.html#CA">CA</a> - <em>Canada</em>
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -141,8 +141,8 @@ Howe</a><br> Location: <a href="../../location.html#CA">CA</a> -
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<p>There is an alternate version provided. See <a
href="#alternate-code">Alternate code</a> below.</p>
<p>There is an alternate version provided. See <a href="#alternate-code">Alternate code</a>
below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> file1 file2</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
@@ -150,191 +150,121 @@ href="#alternate-code">Alternate code</a> below.</p>
<h2 id="try">Try:</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="ex">./try.sh</span></span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2>
<p>This alternate version does not use a 64-bit FNV hash. This was the
original entry but was changed to be the alt version.</p>
<p>This alternate version does not use a 64-bit FNV hash. This was the original
entry but was changed to be the alt version.</p>
<h3 id="alternate-build">Alternate build:</h3>
<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="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This is the best use of the FNV that we have seen in the IOCCC so
far! The output, when used without <code>-d</code>, is compatible with
POSIX <code>diff(1)</code> and is suitable for use with
<code>patch(1)</code>.</p>
<p>This is the best use of the FNV that we have seen in the IOCCC so far!
The output, when used without <code>-d</code>, is compatible with POSIX <code>diff(1)</code> and
is suitable for use with <code>patch(1)</code>.</p>
<p>We welcome back Canada to the list of nations from where winning
entries have been submitted.</p>
<p>Is this code a bug or a feature? :-) Or is this an attempt to corrupt
the programming of our youth? Should we heed Kyle’s mom words that she
uttered during a South Park P.T.A. Meeting?</p>
<p>“We must stop dirty (C) language from getting to our children’s
ears!”</p>
<p><a href="https://www.youtube.com/watch?v=bOR38552MJA">Blame
Canada</a></p>
<p>Or should we teach our youth to understand the intricacies of this
code? Ying Tong Iddle I Po! We suggest you read the source for yourself,
which might be easier than the academic papers it was inspired by.</p>
<p>NOTE: Unlike the original entry source, <a
href="prog.alt.c">prog.alt.c</a>, <a href="prog.c">prog.c</a> uses a 64
bit FNV hash and fixes a function call warning.</p>
<p>Is this code a bug or a feature? :-) Or is this an attempt to corrupt the
programming of our youth? Should we heed Kyle’s mom words that she uttered
during a South Park P.T.A. Meeting?</p>
<p>“We must stop dirty (C) language from getting to our children’s ears!”</p>
<p><a href="https://www.youtube.com/watch?v=bOR38552MJA">Blame Canada</a></p>
<p>Or should we teach our youth to understand the intricacies of this code?
Ying Tong Iddle I Po! We suggest you read the source for yourself, which
might be easier than the academic papers it was inspired by.</p>
<p>NOTE: Unlike the original entry source, <a href="prog.alt.c">prog.alt.c</a>,
<a href="prog.c">prog.c</a> uses a
64 bit FNV hash and fixes a function call warning.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="features">Features</h3>
<ul>
<li><p>“An O(NP) Sequence Comparison Algorithm” by Wu, Manber, Myers,
Miller.</p></li>
<li><p>“An O(NP) Sequence Comparison Algorithm” by Wu, Manber, Myers, Miller.</p></li>
<li><p>Output compatible with <code>patch(1)</code>.</p></li>
<li><p>Strokes one of the judge’s ego (I couldn’t email chocolate or
curry).</p></li>
<li><p>Strokes one of the judge’s ego (I couldn’t email chocolate or curry).</p></li>
</ul>
<h3 id="description">Description</h3>
<p>This is a functioning micro <code>diff(1)</code> tool using an <a
href="http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf">O(NP)
algorithm</a>, compared to the older <a
href="http://www.xmailserver.org/diff2.pdf">O(ND) difference
algorithm</a> used by some versions of <code>diff(1)</code>. Its output
is based on the default <code>diff(1)</code> output described by POSIX
and <a
href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html">the
Open Group Base Specifications</a>. The output is suitable for use with
<code>patch(1)</code>.</p>
<p>The <code>-d</code> option simply writes the edit distance between
<code>file1</code> and <code>file2</code>.</p>
<p>This is a functioning micro <code>diff(1)</code> tool using an <a href="http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf">O(NP) algorithm</a>,
compared to the older <a href="http://www.xmailserver.org/diff2.pdf">O(ND) difference algorithm</a> used by some versions
of <code>diff(1)</code>. Its output is based on the default <code>diff(1)</code> output described by POSIX
and <a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html">the Open Group Base Specifications</a>. The output is suitable for use
with <code>patch(1)</code>.</p>
<p>The <code>-d</code> option simply writes the edit distance between <code>file1</code> and <code>file2</code>.</p>
<h3 id="observations">Observations</h3>
<p>The FNV1a hash is a little slow compared to the trivial hash <a
href="https://www.gnu.org/software/diffutils/">GNU diff</a> uses. I
downloaded a plain text copy of “War And Peace” from <a
href="https://www.gutenberg.org">Project Gutenberg</a>, used <a
href="makeholes.c">makeholes.c</a> to make 1000 random changes, then
profiled and timed the program verses GNU <code>diff(1)</code>. The
bottleneck appears to be in the file I/O and line hashing with an
average +0.05s slower. Using a huge file like “War And Peace” for
testing offsets the <code>diff(1)</code> optimised file I/O.</p>
<p>There is no hash collision checking, partly because FNV1a appears to
generate very <a
href="http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed">few
collisions</a> and an assumption that localised collisions within a
region of edits are highly unlikely.</p>
<p>The FNV1a hash is a little slow compared to the trivial hash <a href="https://www.gnu.org/software/diffutils/">GNU
diff</a> uses. I downloaded a plain text
copy of “War And Peace” from <a href="https://www.gutenberg.org">Project Gutenberg</a>,
used <a href="makeholes.c">makeholes.c</a> to make 1000 random changes, then profiled and
timed the program verses GNU <code>diff(1)</code>. The bottleneck appears to be in the
file I/O and line hashing with an average +0.05s slower. Using a huge file like
“War And Peace” for testing offsets the <code>diff(1)</code> optimised file I/O.</p>
<p>There is no hash collision checking, partly because FNV1a appears to generate
very <a href="http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed">few collisions</a> and an assumption that localised collisions within
a region of edits are highly unlikely.</p>
<h3 id="support-files">Support Files</h3>
<ul>
<li><p><a href="prog-test.sh">prog-test.sh</a> Basic test program
verifies known test edit distances and <code>patch(1)</code>
support.</p></li>
<li><p><a href="prog-test.sh">prog-test.sh</a>
Basic test program verifies known test edit distances and <code>patch(1)</code> support.</p></li>
<li><p><a href="avgtime.sh">avgtime.sh</a></p></li>
<li><p><a href="makeholes.c">makeholes.c</a> Random edits (holes) made
to a file in-place.</p></li>
<li><p><a href="makeholes.c">makeholes.c</a>
Random edits (holes) made to a file in-place.</p></li>
</ul>
<h3 id="references">References</h3>
<p>Wu, Manber, Myers, and Miller; August 1989;<br />
“An O(NP) Sequence Comparison Algorithm”;<br />
<a
href="http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf"
class="uri">http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf</a></p>
<a href="http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf" class="uri">http://myerslab.mpi-cbg.de/wp-content/uploads/2014/06/np_diff.pdf</a></p>
<p>Fowler, Noll, Vo; 1994<br />
<a href="http://www.isthe.com/chongo/tech/comp/fnv/index.html"
class="uri">http://www.isthe.com/chongo/tech/comp/fnv/index.html</a></p>
<a href="http://www.isthe.com/chongo/tech/comp/fnv/index.html" class="uri">http://www.isthe.com/chongo/tech/comp/fnv/index.html</a></p>
<p>Fowler, Noll, Vo on Wikipedia<br />
<a
href="https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function"
class="uri">https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function</a></p>
<a href="https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function" class="uri">https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function</a></p>
<p>“diff”, The Open Group Base Specifications Issue 7<br />
IEEE Std 1003.1, 2013 Edition<br />
<a
href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html"
class="uri">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html</a></p>
<p>Eugene W. Myers; “An O(ND) Difference Algorithm and Its
Variations”;<br />
<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html" class="uri">http://pubs.opengroup.org/onlinepubs/9699919799/utilities/diff.html</a></p>
<p>Eugene W. Myers; “An O(ND) Difference Algorithm and Its Variations”;<br />
Algorithmica, 1986, pages. 251-266<br />
<a href="http://www.xmailserver.org/diff2.pdf"
class="uri">http://www.xmailserver.org/diff2.pdf</a></p>
<a href="http://www.xmailserver.org/diff2.pdf" class="uri">http://www.xmailserver.org/diff2.pdf</a></p>
<p>Webb Miller and Eugene W. Myers; “A File Comparison Program”;<br />
Software-Practice And Experience, Vol. 15(11). 1025-1040 (November
1985)<br />
<a
href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.189.70&amp;rep=rep1&amp;type=pdf"
class="uri">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.189.70&amp;rep=rep1&amp;type=pdf</a></p>
<p>D.S. Hirschberg, “A linear space algorithm for computing maximal
common subsequence problem”;<br />
Software-Practice And Experience, Vol. 15(11). 1025-1040 (November 1985)<br />
<a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.189.70&amp;rep=rep1&amp;type=pdf" class="uri">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.189.70&amp;rep=rep1&amp;type=pdf</a></p>
<p>D.S. Hirschberg, “A linear space algorithm for computing maximal common subsequence problem”;<br />
Comm. of ACM, Vol. 18, June 1975, pages 341-343<br />
<a
href="http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/DynProg/Docs/Hirschberg-LCS-1975.pdf"
class="uri">http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/DynProg/Docs/Hirschberg-LCS-1975.pdf</a></p>
<a href="http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/DynProg/Docs/Hirschberg-LCS-1975.pdf" class="uri">http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/DynProg/Docs/Hirschberg-LCS-1975.pdf</a></p>
<p>Which hashing algorithm is best for uniqueness and speed?<br />
<a
href="http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed"
class="uri">http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed</a></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>
<a href="http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed" class="uri">http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed</a></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-2015howe"><a name="inventory"></a>Inventory for
2015/howe</h1>
<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="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.c">prog.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.alt.c">prog.alt.c</a>
- alternative source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.orig.c">prog.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/avgtime.sh">avgtime.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/makeholes.c">makeholes.c</a>
- add random holes to a file</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog-test.sh">prog-test.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/cc.1">cc.1</a>
- gcc man page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/Makefile">spoiler/Makefile</a>
- SPOILER WARNING how to make the spoiler</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/err.h">spoiler/err.h</a>
- SPOILER WARNING</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/prog.c">spoiler/prog.c</a>
- SPOILER WARNING</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/war-and-peace.txt">war-and-peace.txt</a>
- War and Peace translated to English</li>
<li><a href="2015_howe.tar.bz2">2015_howe.tar.bz2</a> - download entry
source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.c">prog.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.alt.c">prog.alt.c</a> - alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/avgtime.sh">avgtime.sh</a> - how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/makeholes.c">makeholes.c</a> - add random holes to a file</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/prog-test.sh">prog-test.sh</a> - how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/try.sh">try.sh</a> - how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/cc.1">cc.1</a> - gcc man page</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/Makefile">spoiler/Makefile</a> - SPOILER WARNING how to make the spoiler</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/err.h">spoiler/err.h</a> - SPOILER WARNING</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/spoiler/prog.c">spoiler/prog.c</a> - SPOILER WARNING</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2015/howe/war-and-peace.txt">war-and-peace.txt</a> - War and Peace translated to English</li>
<li><a href="2015_howe.tar.bz2">2015_howe.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/howe/.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/howe/.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/howe/.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/howe/.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/howe/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/howe/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->