fix HTML problems associated with leading ---'s

Please do not use "**---**" in markdown lines to separate sections.

This causes `pandoc(1)` to generate "**\<hr />**".

The "**\<hr />**" has no effect in standard HTML 5 and interacts
badly with unquoted attribute values.

If a horizontal line is really needed, use "**\<hr>**".

If a short line is needed, use: "**\<hr
style="width:10%;text-align:left;margin-left:0">**"
This commit is contained in:
Landon Curt Noll committed 2024-04-18 17:50:33 -07:00
1 parent 1566e64949
commit 50f55b4c6a
25 files changed
+181 -188

No files matched your search

+1 -1
View File
@@ -151,7 +151,7 @@ Here follows a description of some of the data structures and
algorithms used by AG. It is by no means complete, but it may help
you get an idea about the general principles.
---
<hr style="width:10%;text-align:left;margin-left:0">
Internally, AG represents words and sentences as arrays of 32
4-bit integer elements. Each element represents the number of
+1 -1
View File
@@ -242,7 +242,7 @@ algorithms are outlined in the spoiler below.</p>
<p>Here follows a description of some of the data structures and
algorithms used by AG. It is by no means complete, but it may help
you get an idea about the general principles.</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Internally, AG represents words and sentences as arrays of 32
4-bit integer elements. Each element represents the number of
times a letter occurs in the word/sentence. There are 32 elements
+3 -3
View File
@@ -178,7 +178,7 @@ And another...
cat august.oo august.oo august.oo test.oo | ./august
```
---
<hr style="width:10%;text-align:left;margin-left:0">
Fitting the byte code for the compiler into the initial comment
was a challenge. I had to strip the compiler/interpreter of
@@ -202,7 +202,7 @@ coder), but decompression then takes up too much code. Maybe this
would be a way to fit it all into the 1536 bytes, but I don't have
time to try it.
---
<hr style="width:10%;text-align:left;margin-left:0">
Execution starts at `main()`. Nothing can be used before it is
defined. `getchar()` and `putchar()` are predefined functions.
@@ -271,7 +271,7 @@ Terminals are in quotes, `()` is used for bracketing.
stars: "*"*
```
---
<hr style="width:10%;text-align:left;margin-left:0">
Well, that is enough ranting for now.
+3 -3
View File
@@ -235,7 +235,7 @@ level of interpretation:</p>
<pre><code> cat august.oo august.oo test.oo | ./august</code></pre>
<p>And another…</p>
<pre><code> cat august.oo august.oo august.oo test.oo | ./august</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Fitting the byte code for the compiler into the initial comment
was a challenge. I had to strip the compiler/interpreter of
a lot of functionality to bring down their sizes. The initial
@@ -255,7 +255,7 @@ the code further with a better entropy coder (e.g. an arithmetic
coder), but decompression then takes up too much code. Maybe this
would be a way to fit it all into the 1536 bytes, but I don’t have
time to try it.</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Execution starts at <code>main()</code>. Nothing can be used before it is
defined. <code>getchar()</code> and <code>putchar()</code> are predefined functions.</p>
<p>Below is a description of the OC grammar.</p>
@@ -316,7 +316,7 @@ defined. <code>getchar()</code> and <code>putchar()</code> are predefined functi
&quot;char&quot; stars
stars: &quot;*&quot;*</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Well, that is enough ranting for now.</p>
<!--
+2 -2
View File
@@ -118,7 +118,7 @@ reverse them. Anyone out there should have enough discipline and
rot13 shouldn't be required, really. After all, we are not children
anymore :-)
---
<hr style="width:10%;text-align:left;margin-left:0">
This paragraph is not part of the author's remarks, but is a helpful
gift from the judges; if you read too fast to stop yourself, this should
@@ -126,7 +126,7 @@ give you enough time to stop, which you really need to do RIGHT NOW if
you don't want to read the spoilers, which really do spoil everything,
we mean it.
---
<hr style="width:10%;text-align:left;margin-left:0">
The source file needs to be present because the words are read from
it. The wordlist is encoded within the source using a 24 entry
+2 -2
View File
@@ -237,13 +237,13 @@ rot13 spoilers since it is somewhat complicated on a Mac to
reverse them. Anyone out there should have enough discipline and
rot13 shouldn’t be required, really. After all, we are not children
anymore :-)</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>This paragraph is not part of the author’s remarks, but is a helpful
gift from the judges; if you read too fast to stop yourself, this should
give you enough time to stop, which you really need to do RIGHT NOW if
you don’t want to read the spoilers, which really do spoil everything,
we mean it.</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>The source file needs to be present because the words are read from
it. The wordlist is encoded within the source using a 24 entry
sliding dictionary where lowercase letters are offsets into the
+2 -2
View File
@@ -264,7 +264,7 @@ mind ;-)</p>
l[12] - l[14] strspn argument
l[34] terminator for backward decoding
l[35] - l[998] input line</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Selected notes:
- We don’t need to declare <code>isalnum(3)</code> (or include ctype.h) as its implicit
declaration is correct (int argument, int result). This is not so for
@@ -276,7 +276,7 @@ whereas it is not. Well, it is, but there is a sequence point in between.
- lclint 2.4b parses line 13 as <error>, whereas it is correct code.
- lclint 2.4b is positive the second <code>while</code> loop is infinite, whereas it is
not.</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>.. - …. .. -. -.- - …. .. … … .–. — .. .-.. . .-. .. … – — .-. . — -… ..-. ..- … -.-. .- - . -.. - …. .- -. - …. . .–. .-. — –. .-. .- –</p>
<p>. -..- . .-. -.-. .. … .
-.-. …. .- -. –. . - …. . .–. .-. — –. .-. .- – … — .. - -.. — . … -. — - … …. — ..- -</p>
+2 -2
View File
@@ -188,7 +188,7 @@ Summary of the use of l[999]:
l[35] - l[998] input line
```
---
<hr style="width:10%;text-align:left;margin-left:0">
Selected notes:
- We don't need to declare `isalnum(3)` (or include ctype.h) as its implicit
@@ -202,7 +202,7 @@ Selected notes:
- lclint 2.4b is positive the second `while` loop is infinite, whereas it is
not.
---
<hr style="width:10%;text-align:left;margin-left:0">
.. - .... .. -. -.- - .... .. ... ... .--. --- .. .-.. . .-. .. ... -- --- .-. . --- -... ..-. ..- ... -.-. .- - . -.. - .... .- -. - .... . .--. .-. --- --. .-. .- --
+1 -1
View File
@@ -293,7 +293,7 @@ Division by zero results in an IEEE Inf number.
This section explains the meaning and rationale for the
compile time parameters:
---
<hr style="width:10%;text-align:left;margin-left:0">
```
-DC=XK_Up
+1 -1
View File
@@ -312,7 +312,7 @@ value supposedly returned by it.</p>
<h4 id="compilation-parameters-and-configuration">2.9. Compilation Parameters and Configuration</h4>
<p>This section explains the meaning and rationale for the
compile time parameters:</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<pre><code> -DC=XK_Up
-DL=XK_Down
-DO=XK_Left
+7 -2
View File
@@ -150,8 +150,13 @@ header has a comment line for non-standard-compliant viewers (specifically, my
old HDRShop 1.0). And there is a nice text message saying "please wait...".
Despite the messy look, [a.c](a.c) and [hou.c](hou.c) compile warning-free
([hou.c](hou.c) even wastes 18 bytes on `#include<stdio.h>` just for `putchar(3)`).
[a.c](a.c) compiles mostly clean in the C99/ANSI modes of clang and gcc (with `-Wall
--pedantic`). The only warning generated is a pedantic one: `"string constant
[a.c](a.c) compiles mostly clean in the C99/ANSI modes of clang and gcc (with:
```
-Wall --pedantic
```
The only warning generated is a pedantic one: `"string constant
too long"`.
+10 -40
View File
@@ -228,13 +228,7 @@ like this comment.</p>
<p>Basically, you define a geometry using volume shaders, define a camera using a
camera shader, and define light sources and surface reflectance properties using
material shaders.</p>
<table>
<tbody>
<tr class="odd">
<td style="text-align: left;">Continue to the comments before function A</td>
</tr>
</tbody>
</table>
<h3 id="continue-to-the-comments-before-function-a">Continue to the comments before function A</h3>
<pre><code> //As an (optional) assignment, figure out what function &#39;n&#39; does. And why there is a plus sign at every EOL except the last.
n]#=1+
x=X+1/2+
@@ -251,7 +245,7 @@ material shaders.</p>
C=C#d+3*9+
#=d+
R=0#n</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>The function <code>A</code> initializes global settings:</p>
<pre><code> G -- Image width, in pixels
H -- Image height, in pixels
@@ -284,13 +278,7 @@ in China and my parents were planning to renovate their apartment. I rendered
the image to tell my mom how ridiculous her starry-sky wall paper would look
like if she used it on every single wall. She ends up using it on just one wall,
the one facing my bed, to thank me for the effort.</p>
<table>
<tbody>
<tr class="odd">
<td style="text-align: left;">Continue to the comments before function a</td>
</tr>
</tbody>
</table>
<h3 id="continue-to-the-comments-before-function-a-1">Continue to the comments before function a</h3>
<pre><code> //As a bonus, find out what the first line does
A]#=#-#;&quot;=7:0-p+^;#=&quot;+
R=n+
@@ -302,7 +290,7 @@ the one facing my bed, to thank me for the effort.</p>
J=1/2+
C=p+1+
U=w+w+w</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>The function <code>a</code> is the camera shader, which, well, generates the camera ray.
It’s supposed to return the ray in variables <code>UVWXYZ</code> and <code>ABCDEF</code> (that may
sound like a lot of variables, but it really isn’t that much).</p>
@@ -325,13 +313,7 @@ happen. Wall up everything.</p>
explained in the material shaders part. For now, just put in:</p>
<pre><code> A=0;B=0;C=0
D=1;E=1;F=1</code></pre>
<table>
<tbody>
<tr class="odd">
<td style="text-align: left;">Continue to the comments before function 1</td>
</tr>
</tbody>
</table>
<h3 id="continue-to-the-comments-before-function-1">Continue to the comments before function 1</h3>
<pre><code> a]R=0+
X=5:5+
Y=5:5+
@@ -355,7 +337,7 @@ explained in the material shaders part. For now, just put in:</p>
W=p*8+
A=0;B=0;C=0+
D=1;E=1;F=1</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>The numbered functions define materials, i.e., surface reflectance properties.
As the name suggests, the shader simulates ray-surface interaction. It’s done by
updating <code>UVWXYZABCDEF</code>, of course.</p>
@@ -378,13 +360,7 @@ same if you use a RGB texture. And yes, that is the what the second <code>sqrt(3
<p>Going beyond colors, to define a shiny or dull surface one needs more maths, and
optics. The jargon for this is <code>BRDF</code> (Bidirectional Reflectance Distribution
Function) importance sampling. Let’s continue to function <code>o</code>.</p>
<table>
<tbody>
<tr class="odd">
<td style="text-align: left;">Continue to the comments before function o</td>
</tr>
</tbody>
</table>
<h3 id="continue-to-the-comments-before-function-o">Continue to the comments before function o</h3>
<pre><code> //This function computes the starred wallpaper
//Original color: 0.36 0.714285 0.8
1]R=o+
@@ -411,7 +387,7 @@ Function) importance sampling. Let’s continue to function <code>o</code>.</p>
E=E*4/7+
d=I#2/5+
F=F*d</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Function <code>o</code> defines a diffuse (that is, dull) surface. To define reflectance
properties like this, one needs to sample an outgoing ray direction, based on
the incoming direction and the surface normal. It’s called importance sampling,
@@ -434,13 +410,7 @@ directly model the
<a href="https://en.wikipedia.org/wiki/Mesoscopic_physics">mesoscopic</a> detail. Shader
<code>D</code> in this file produces a bunch of dense, tiny spikes to simulate a fluffy
appearance.</p>
<table>
<tbody>
<tr class="odd">
<td style="text-align: left;">Continue to the EOF</td>
</tr>
</tbody>
</table>
<h3 id="continue-to-the-eof">Continue to the EOF</h3>
<pre><code> //diffuse ray generation
o]R=0+
u=5:5+
@@ -538,7 +508,7 @@ appearance.</p>
y=4:#/7+
#=#-y*7+
C=7#C</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>The last line, well, is the output filename. Just remember to throw in two <code>]</code>s
and don’t put a newline after it.</p>
<pre><code> ]]example.ppm</code></pre>
+10 -22
View File
@@ -136,9 +136,7 @@ camera shader, and define light sources and surface reflectance properties using
material shaders.
-------------------------------------------
Continue to the comments before function A
-------------------------------------------
### Continue to the comments before function A
```
@@ -160,7 +158,7 @@ Continue to the comments before function A
R=0#n
```
-------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
The function `A` initializes global settings:
@@ -204,9 +202,7 @@ like if she used it on every single wall. She ends up using it on just one wall,
the one facing my bed, to thank me for the effort.
-------------------------------------------
Continue to the comments before function a
-------------------------------------------
### Continue to the comments before function a
```
//As a bonus, find out what the first line does
@@ -222,8 +218,7 @@ Continue to the comments before function a
U=w+w+w
```
-------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
The function `a` is the camera shader, which, well, generates the camera ray.
It's supposed to return the ray in variables `UVWXYZ` and `ABCDEF` (that may
@@ -256,9 +251,7 @@ explained in the material shaders part. For now, just put in:
D=1;E=1;F=1
```
-------------------------------------------
Continue to the comments before function 1
-------------------------------------------
### Continue to the comments before function 1
```
a]R=0+
@@ -286,8 +279,7 @@ Continue to the comments before function 1
D=1;E=1;F=1
```
--------------------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
The numbered functions define materials, i.e., surface reflectance properties.
As the name suggests, the shader simulates ray-surface interaction. It's done by
@@ -318,9 +310,7 @@ optics. The jargon for this is `BRDF` (Bidirectional Reflectance Distribution
Function) importance sampling. Let's continue to function `o`.
-------------------------------------------
Continue to the comments before function o
-------------------------------------------
### Continue to the comments before function o
```
//This function computes the starred wallpaper
@@ -351,7 +341,7 @@ Continue to the comments before function o
F=F*d
```
-------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
Function `o` defines a diffuse (that is, dull) surface. To define reflectance
properties like this, one needs to sample an outgoing ray direction, based on
@@ -385,9 +375,7 @@ appearance.
-------------------------------------------
Continue to the EOF
-------------------------------------------
### Continue to the EOF
```
//diffuse ray generation
@@ -489,7 +477,7 @@ Continue to the EOF
C=7#C
```
-------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
The last line, well, is the output filename. Just remember to throw in two `]`s
and don't put a newline after it.
+3 -1
View File
@@ -264,8 +264,10 @@ header has a comment line for non-standard-compliant viewers (specifically, my
old HDRShop 1.0). And there is a nice text message saying “please wait…”.
Despite the messy look, <a href="a.c">a.c</a> and <a href="hou.c">hou.c</a> compile warning-free
(<a href="hou.c">hou.c</a> even wastes 18 bytes on <code>#include&lt;stdio.h&gt;</code> just for <code>putchar(3)</code>).
<a href="a.c">a.c</a> compiles mostly clean in the C99/ANSI modes of clang and gcc (with <code>-Wall --pedantic</code>). The only warning generated is a pedantic one: <code>"string constant too long"</code>.</li>
<a href="a.c">a.c</a> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li>
</ul>
<pre><code>-Wall --pedantic</code></pre>
<p>The only warning generated is a pedantic one: <code>"string constant too long"</code>.</p>
<h3 id="comments-and-why-obfuscated">Comments and why obfuscated</h3>
<ul>
<li>Both the compression and the rendering use mathematically involved algorithms.
+5 -1
View File
@@ -341,7 +341,11 @@ The following reserved word files are included:
NB: The keyword file used in this code is derived from the list in [iocccsize.c](../../2018/iocccsize.c),
which is neither complete (`#define`, `#ifndef`, `#undef` are missing
-- yes, Virginia knows about `#define` omitted on purpose),
```
yes, Virginia knows about `#define` omitted on purpose
``
nor correct (many more are added: `I`, `true`, `bool`, `compl`, ...):
``` <!---sh-->
+66 -47
View File
@@ -399,56 +399,75 @@ the IOJCC trash can.</p>
<li><a href="ioccc.kw.freq">ioccc.kw.freq</a> c11 + additional words, sorted on frequency of occurrence in IOCCC entries</li>
</ul>
<p>NB: The keyword file used in this code is derived from the list in <a href="../../2018/iocccsize.c">iocccsize.c</a>,
which is neither complete (<code>#define</code>, <code>#ifndef</code>, <code>#undef</code> are missing
– yes, Virginia knows about <code>#define</code> omitted on purpose),
nor correct (many more are added: <code>I</code>, <code>true</code>, <code>bool</code>, <code>compl</code>, …):</p>
<pre><code> (sed -n &#39;1p&#39; c11; sed -n &#39;2,$p&#39; ioccc.kw.freq | sort) | comm -3 - c11</code></pre>
<p>That is an obfuscated way to say “diff”. But it also more clearly shows the, um, diffs.</p>
<p>The usage string is similarly externalized, providing a better usability string than
the limits would otherwise allow. If this is considered bending the rules too far,
just <code>-DU=O</code> to get a passible, if cryptic, usage message using no additional octets
which is neither complete (<code>#define</code>, <code>#ifndef</code>, <code>#undef</code> are missing</p>
<pre><code>yes, Virginia knows about `#define` omitted on purpose
``
nor correct (many more are added: `I`, `true`, `bool`, `compl`, ...):
</code></pre>
<p>(sed -n ‘1p’ c11; sed -n ‘2,$p’ ioccc.kw.freq | sort) | comm -3 - c11</p>
<pre><code>
That is an obfuscated way to say &quot;diff&quot;. But it also more clearly shows the, um, diffs.
The usage string is similarly externalized, providing a better usability string than
the limits would otherwise allow. If this is considered bending the rules too far,
just `-DU=O` to get a passible, if cryptic, usage message using no additional octets
than without the define.
This also allows the builder to configure the amount of help a utility should provide
(<a href="https://www.youtube.com/watch?v=VU0GYSA1POs" title="Ants">you want a manpage? Because that’s how you get a manpage.</a>) – a rather
significant point of contention made moot.</p>
<p>There is definitely abuse of the Rule2 counter, exploiting a “feature” of
<code>iocccsize</code>: <code>iocccsize</code> does not Rule2 count <code>{</code>, <code>}</code> and <code>;</code> when followed by
whitespace – even within a string! Thus: Freecode, a simple, uncounted, highly
obfuscated encoding of a central part of this program. (The reserved word list
is not Freecoded, both because it is useful apart from the program, and because
Freecode is not entirely free.)</p>
<ul>
<li>Some restrictions apply. Not approved for all uses. Some assembly required.</li>
</ul>
<h3 id="compilation">Compilation:</h3>
<p>The code is ANSI compliant, but it does have a string longer than 509 characters.
It has been tested on OSX and Linux, Clang and GCC.</p>
<p>The code uses trigraphs, ironically: it parses trigraphs with trigraph code.
Because that’s funny. And it remains obscure after, so trigraphs are not used
for obfuscation. Thus <code>-trigraphs -Wno-trigraphs</code> (which is also humorous).</p>
<p>It’s obfuscated C. Thus <code>-Wno-parentheses -Wno-empty-body -Wno-char-subscripts</code>.</p>
<p>The code uses <code>unsigned char</code>s, but C strings are <code>signed</code>. Thus <code>-Wno-pointer-sign</code>.
NB: This is <em>not</em> a portability concern, the one string holds only printable ASCII characters.</p>
<p>Thus:</p>
<pre><code> cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW=\&quot;keywords\&quot; -o prog prog.c</code></pre>
<h3 id="coda">Coda:</h3>
<p><a href="../../authors.html#Cody_Boone_Ferguson">Cody Boone Ferguson</a> was relentless in his pursuit of bugs.
Thanks to his reports, the version of <a href="unob.sh">unob.sh</a> is stronger,
<code>tac</code> groks digraphs, <a href="tokenfix.sh">tokenfix.sh</a> corrects for missing digraphs
in <a href="prog.c">prog.c</a>, and the program <a href="manpage.sh">manpage.sh</a> was added to the corpus.</p>
<p><a href="manpage.sh">manpage.sh</a> is a useful program that turns ASCII versions of man
pages (e.g. <a href="tac.man">tac.man</a>) into real man pages. It works for C and C-like
languages, command lines, and was designed to handle man page sections 1-8. It
works well on most inputs, but tends to need some raw nroff for more fancy
constructions, such as combined arguments (e.g. the <code>-r</code> and <code>-s</code> arguments to tac
are not recognised when written as <code>-rs</code> in prose).</p>
<p>Try:</p>
<pre><code> ./manpage.sh tac
([you want a manpage? Because that&#39;s how you get a manpage.][5]) -- a rather
significant point of contention made moot.
./manpage.sh -h
./manpage.sh -h | ./manpage.sh
./manpage.sh -h | ./manpage.sh -R | less
./manpage.sh -h | ./manpage.sh -P | lpr</code></pre>
There is definitely abuse of the Rule2 counter, exploiting a &quot;feature&quot; of
`iocccsize`: `iocccsize` does not Rule2 count `{`, `}` and `;` when followed by
whitespace -- even within a string! Thus: Freecode, a simple, uncounted, highly
obfuscated encoding of a central part of this program. (The reserved word list
is not Freecoded, both because it is useful apart from the program, and because
Freecode is not entirely free.)
* Some restrictions apply. Not approved for all uses. Some assembly required.
[5]: https://www.youtube.com/watch?v=VU0GYSA1POs &quot;Ants&quot;
### Compilation:
The code is ANSI compliant, but it does have a string longer than 509 characters.
It has been tested on OSX and Linux, Clang and GCC.
The code uses trigraphs, ironically: it parses trigraphs with trigraph code.
Because that&#39;s funny. And it remains obscure after, so trigraphs are not used
for obfuscation. Thus `-trigraphs -Wno-trigraphs` (which is also humorous).
It&#39;s obfuscated C. Thus `-Wno-parentheses -Wno-empty-body -Wno-char-subscripts`.
The code uses `unsigned char`s, but C strings are `signed`. Thus `-Wno-pointer-sign`.
NB: This is *not* a portability concern, the one string holds only printable ASCII characters.
Thus:
</code></pre>
<p>cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW="keywords" -o prog prog.c</p>
<pre><code>
### Coda:
[Cody Boone Ferguson](../../authors.html#Cody_Boone_Ferguson) was relentless in his pursuit of bugs.
Thanks to his reports, the version of [unob.sh](unob.sh) is stronger,
`tac` groks digraphs, [tokenfix.sh](tokenfix.sh) corrects for missing digraphs
in [prog.c](prog.c), and the program [manpage.sh](manpage.sh) was added to the corpus.
[manpage.sh](manpage.sh) is a useful program that turns ASCII versions of man
pages (e.g. [tac.man](tac.man)) into real man pages. It works for C and C-like
languages, command lines, and was designed to handle man page sections 1-8. It
works well on most inputs, but tends to need some raw nroff for more fancy
constructions, such as combined arguments (e.g. the `-r` and `-s` arguments to tac
are not recognised when written as `-rs` in prose).
Try:
</code></pre>
<p>./manpage.sh tac</p>
<p>./manpage.sh -h
./manpage.sh -h | ./manpage.sh
./manpage.sh -h | ./manpage.sh -R | less
./manpage.sh -h | ./manpage.sh -P | lpr
```</p>
<p>NOTE: in 2023 the <code>tac.man</code> was updated to proper man format and renamed
<a href="tac.1">tac.1</a>.</p>
<!--
+1 -1
View File
@@ -791,7 +791,7 @@ those friends and coworkers who had to listen to me complain about obscure
corner-case bugs in my code. The obsession is over, at least until next
time...
-------------------------------------------------------------------------------
<hr style="width:10%;text-align:left;margin-left:0">
[1]: ../../1984/mullender/mullender.c "mullender.c"
[2]: http://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD "2.9 BSD"
+1 -1
View File
@@ -758,7 +758,7 @@ to queries about how I was spending my free time. Similarly, I apologise to
those friends and coworkers who had to listen to me complain about obscure
corner-case bugs in my code. The obsession is over, at least until next
time…</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+2 -2
View File
@@ -54,7 +54,7 @@ Alternatively, if you want to change the size, do something like:
The author provided us with the following table for use:
---
<hr style="width:10%;text-align:left;margin-left:0">
* **Arrow keys**: move cursor.
* `p` key: enter *pen* mode (type **p** again to return to the default *move*
@@ -76,7 +76,7 @@ After editing the file and quitting, try:
i.e. execute the file.
---
<hr style="width:10%;text-align:left;margin-left:0">
WARNING: if the file is deleted it might lock any session still in use. These
will have to be killed from another shell session or by closing the terminal tab
+2 -2
View File
@@ -171,7 +171,7 @@ See <a href="#alternate-code">Alternate code</a> below if you are curious.</p>
<p>Alternatively, if you want to change the size, do something like:</p>
<pre><code> make clobber LINES=20 COLUMNS=20 all</code></pre>
<p>The author provided us with the following table for use:</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<ul>
<li><strong>Arrow keys</strong>: move cursor.</li>
<li><code>p</code> key: enter <em>pen</em> mode (type <strong>p</strong> again to return to the default <em>move</em>
@@ -186,7 +186,7 @@ the editor.</p>
<p>After editing the file and quitting, try:</p>
<pre><code> /tmp/drawing</code></pre>
<p>i.e. execute the file.</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>WARNING: if the file is deleted it might lock any session still in use. These
will have to be killed from another shell session or by closing the terminal tab
(in other words don’t do this from the console!). If the file cannot be opened
+13 -9
View File
@@ -398,19 +398,23 @@ with `RNN(h, x)` defined as above. Each RNN module has its own set of
parameters and its own hidden state vector. This will improve the network's
performance, at the cost of a much larger parameter space.
---
<hr style="width:10%;text-align:left;margin-left:0">
**IMPORTANT NOTE**: Since OMLET uses the system stack for network storage,
**IMPORTANT NOTE**:
```
Since OMLET uses the system stack for network storage,
larger networks may cause OMLET to crash (typically with a message like
`Segmentation fault`) unless the system stack size is first increased.
Segmentation fault) unless the system stack size is first increased.
The exact command for doing so depends on your shell and your system's
hard limits. On `sh`/`ksh`/`bash` shells, you can view the hard limit
with `ulimit -Hs` and set it with `ulimit -s 65532` (replacing `65532`
with the actual hard limit). On `csh`/`tcsh` shells, you can view
the hard limit with `limit -h stacksize` and set it with
`limit stacksize 65532` (replacing `65532` with the actual hard limit).
hard limits. On sh/ksh/bash shells, you can view the hard limit
with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
with the actual hard limit). On csh/tcsh shells, you can view
the hard limit with limit -h stacksize and set it with
limit stacksize 65532 (replacing 65532 with the actual hard limit).
```
---
<hr style="width:10%;text-align:left;margin-left:0">
You can try the deeper network by doing
+11 -10
View File
@@ -435,17 +435,18 @@ other:</p>
<p>with <code>RNN(h, x)</code> defined as above. Each RNN module has its own set of
parameters and its own hidden state vector. This will improve the network’s
performance, at the cost of a much larger parameter space.</p>
<hr />
<p><strong>IMPORTANT NOTE</strong>: Since OMLET uses the system stack for network storage,
<hr style="width:10%;text-align:left;margin-left:0">
<p><strong>IMPORTANT NOTE</strong>:</p>
<pre><code>Since OMLET uses the system stack for network storage,
larger networks may cause OMLET to crash (typically with a message like
<code>Segmentation fault</code>) unless the system stack size is first increased.
The exact command for doing so depends on your shell and your system’s
hard limits. On <code>sh</code>/<code>ksh</code>/<code>bash</code> shells, you can view the hard limit
with <code>ulimit -Hs</code> and set it with <code>ulimit -s 65532</code> (replacing <code>65532</code>
with the actual hard limit). On <code>csh</code>/<code>tcsh</code> shells, you can view
the hard limit with <code>limit -h stacksize</code> and set it with
<code>limit stacksize 65532</code> (replacing <code>65532</code> with the actual hard limit).</p>
<hr />
Segmentation fault) unless the system stack size is first increased.
The exact command for doing so depends on your shell and your system&#39;s
hard limits. On sh/ksh/bash shells, you can view the hard limit
with ulimit -Hs and set it with ulimit -s 65532 (replacing 65532
with the actual hard limit). On csh/tcsh shells, you can view
the hard limit with limit -h stacksize and set it with
limit stacksize 65532 (replacing 65532 with the actual hard limit).</code></pre>
<hr style="width:10%;text-align:left;margin-left:0">
<p>You can try the deeper network by doing</p>
<pre><code> make rnn2</code></pre>
<p>(or even <code>make rnn3</code> if you want a three-layer RNN) and train it with</p>
+2 -2
View File
@@ -36,7 +36,7 @@ way it works too fast regardless of the context length, and it's much less fun.
The author wrote in reply:
---
<hr style="width:10%;text-align:left;margin-left:0">
Wow, amazing! Very fast, but there is a drawback to randomness.
If some string only appears after half the input, the first instance
@@ -56,7 +56,7 @@ Example:
-- Author
```
---
<hr style="width:10%;text-align:left;margin-left:0">
Try using the same random seed and varying the context size.
+2 -2
View File
@@ -167,7 +167,7 @@ context length decreases:</p>
the (still non-standard, for some reason) library function <code>memmem()</code>, but that
way it works too fast regardless of the context length, and it’s much less fun.</p>
<p>The author wrote in reply:</p>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Wow, amazing! Very fast, but there is a drawback to randomness.
If some string only appears after half the input, the first instance
of this string will have a 50% chance of occurrence.
@@ -179,7 +179,7 @@ Example:</p>
# more ones in output</code></pre>
<pre><code> But this will happen very rarely on real data.
-- Author</code></pre>
<hr />
<hr style="width:10%;text-align:left;margin-left:0">
<p>Try using the same random seed and varying the context size.</p>
<p>BTW: what on Middle-earth is <code>lámatyávë</code>? It’s Quenya, one of the languages of
the Elves in Tolkien’s Legendarium. It means sound taste (plural is lámatyáver)
+28 -28
View File
@@ -2498,7 +2498,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1991/ant/index.html</loc>
<lastmod>2024-04-18T23:29:08+00:00</lastmod>
<lastmod>2024-04-19T00:20:09+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1991/ant/Makefile</loc>
@@ -2510,7 +2510,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1991/ant/README.md</loc>
<lastmod>2024-04-17T07:02:43+00:00</lastmod>
<lastmod>2024-04-19T00:13:56+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/1991_brnstnd.tar.bz2</loc>
@@ -3262,7 +3262,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/gson/index.html</loc>
<lastmod>2024-04-18T23:29:15+00:00</lastmod>
<lastmod>2024-04-19T00:47:42+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/gson/Makefile</loc>
@@ -3278,7 +3278,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/gson/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:43:43+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1992/gson/try.sh</loc>
@@ -5302,7 +5302,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1996/august/index.html</loc>
<lastmod>2024-04-18T23:29:36+00:00</lastmod>
<lastmod>2024-04-19T00:48:02+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1996/august/Makefile</loc>
@@ -5318,7 +5318,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1996/august/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:46:06+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1996/august/test.oc</loc>
@@ -6030,7 +6030,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/df/index.html</loc>
<lastmod>2024-04-18T23:29:44+00:00</lastmod>
<lastmod>2024-04-19T00:48:10+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/df/Makefile</loc>
@@ -6042,7 +6042,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/df/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:45:46+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/df/try.sh</loc>
@@ -6154,11 +6154,11 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/dorssel.html</loc>
<lastmod>2024-04-18T23:28:31+00:00</lastmod>
<lastmod>2024-04-19T00:46:58+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/dorssel.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:45:53+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/dorssel.orig.c</loc>
@@ -6790,7 +6790,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/index.html</loc>
<lastmod>2024-04-18T23:29:52+00:00</lastmod>
<lastmod>2024-04-19T00:48:18+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/jarijyrki.c</loc>
@@ -6810,7 +6810,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:43:51+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2000/Makefile</loc>
@@ -13510,11 +13510,11 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.html</loc>
<lastmod>2024-04-18T23:28:32+00:00</lastmod>
<lastmod>2024-04-19T00:47:00+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:43:37+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/.entry.json</loc>
@@ -13534,7 +13534,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/index.html</loc>
<lastmod>2024-04-18T23:30:44+00:00</lastmod>
<lastmod>2024-04-19T00:39:30+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/luna.jpg</loc>
@@ -13566,7 +13566,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:37:17+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2013/hou/try.sh</loc>
@@ -14918,7 +14918,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2015/index.html</loc>
<lastmod>2024-04-18T23:28:27+00:00</lastmod>
<lastmod>2024-04-19T00:20:50+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2015/iocccsize.c</loc>
@@ -15122,7 +15122,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2015/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:16:43+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2015/rules.txt</loc>
@@ -15478,7 +15478,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/index.html</loc>
<lastmod>2024-04-18T23:31:01+00:00</lastmod>
<lastmod>2024-04-19T00:49:27+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/iocccbug01.c</loc>
@@ -15554,7 +15554,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/README.md</loc>
<lastmod>2024-04-17T07:33:43+00:00</lastmod>
<lastmod>2024-04-19T00:45:39+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/results</loc>
@@ -16058,7 +16058,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/mills/index.html</loc>
<lastmod>2024-04-18T23:31:05+00:00</lastmod>
<lastmod>2024-04-19T00:49:30+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/mills/Makefile</loc>
@@ -16078,7 +16078,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/mills/README.md</loc>
<lastmod>2024-04-17T07:38:49+00:00</lastmod>
<lastmod>2024-04-19T00:44:50+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2018/mills/v0.image.fs</loc>
@@ -16690,7 +16690,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/duble/index.html</loc>
<lastmod>2024-04-18T23:31:10+00:00</lastmod>
<lastmod>2024-04-19T00:49:35+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/duble/Makefile</loc>
@@ -16714,7 +16714,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/duble/README.md</loc>
<lastmod>2024-04-12T18:22:04+00:00</lastmod>
<lastmod>2024-04-19T00:44:00+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/endoh/2019_endoh.tar.bz2</loc>
@@ -16978,7 +16978,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/mills/index.html</loc>
<lastmod>2024-04-18T23:31:12+00:00</lastmod>
<lastmod>2024-04-19T00:49:38+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/mills/IOCCC-hints.cp09_1.809</loc>
@@ -17014,7 +17014,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/mills/README.md</loc>
<lastmod>2024-04-17T07:00:58+00:00</lastmod>
<lastmod>2024-04-19T00:44:31+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2019/mills/Shakespeare.cp04_1.633</loc>
@@ -17954,7 +17954,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/index.html</loc>
<lastmod>2024-04-18T23:31:19+00:00</lastmod>
<lastmod>2024-04-19T00:49:45+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/Makefile</loc>
@@ -17978,7 +17978,7 @@
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/README.md</loc>
<lastmod>2024-04-17T07:40:29+00:00</lastmod>
<lastmod>2024-04-19T00:44:43+00:00</lastmod>
</url>
<url>
<loc>https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/Shakespeare.txt</loc>