fix non-indented markdown code blocks
We have fixed cases where markdown code blocks were not properly intended. Updated `markdown.md` to discuss how markdown code blocks should be indented and how blank lines should follow a markdown code block. We used this shell script to find problematic code blocks: ```sh find . -name '*.md' ! -name markdown.md -print | xargs pcregrep -M '^``.*\n[^|`\n \t]' ``` Ran `make www` to perform the above.
This commit is contained in:
1 parent
a507a06076
commit
b1516f0ed9
29 files changed
+357
-213
No files matched your search
@@ -407,7 +407,7 @@ limitation removed the numbers now are <code>43</code> and <code>45</code>. But
|
||||
the command is:</p>
|
||||
<pre><code> "0gcc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("</code></pre>
|
||||
<p>which has been changed to be:</p>
|
||||
<pre><code>"0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("</code></pre>
|
||||
<pre><code> "0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("</code></pre>
|
||||
<p>Shortly below that you will see, as noted above, the numbers:</p>
|
||||
<pre><code> if ((H = fopen (__FILE__+43, 43+__FILE__)))
|
||||
while ((fgets (L, (int)sizeof L, H)) != 0) {
|
||||
|
||||
@@ -45,7 +45,7 @@ the command is:
|
||||
which has been changed to be:
|
||||
|
||||
```
|
||||
"0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("
|
||||
"0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("
|
||||
```
|
||||
|
||||
Shortly below that you will see, as noted above, the numbers:
|
||||
|
||||
@@ -373,6 +373,7 @@ and change it to BLC8 with
|
||||
$ wc rev.Blc
|
||||
0 1 9 rev.Blc
|
||||
```
|
||||
|
||||
and then try it out with:
|
||||
|
||||
``` <!---sh-->
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ Despite the messy look, `a.c` and [hou.c](%%REPO_URL%%/2013/hou/hou.c) compile w
|
||||
`a.c` compiles mostly clean in the C99/ANSI modes of clang and gcc (with:
|
||||
|
||||
```
|
||||
-Wall --pedantic
|
||||
-Wall --pedantic
|
||||
```
|
||||
|
||||
The only warning generated is a pedantic one: `"string constant
|
||||
|
||||
+1
-1
@@ -507,7 +507,7 @@ Despite the messy look, <code>a.c</code> and <a href="https://github.com/ioccc-s
|
||||
(<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> even wastes 18 bytes on <code>#include<stdio.h></code> just for <code>putchar(3)</code>).
|
||||
<code>a.c</code> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li>
|
||||
</ul>
|
||||
<pre><code>-Wall --pedantic</code></pre>
|
||||
<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>
|
||||
|
||||
@@ -343,7 +343,7 @@ NB: The keyword file used in this code is derived from the list in [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`, ...):
|
||||
|
||||
@@ -644,7 +644,7 @@ the IOJCC trash can.</p>
|
||||
</ul>
|
||||
<p>NB: The keyword file used in this code is derived from the list in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2018/iocccsize.c">iocccsize.c</a>,
|
||||
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</code></pre>
|
||||
<pre><code> yes, Virginia knows about `#define` omitted on purpose</code></pre>
|
||||
<p>nor correct (many more are added: <code>I</code>, <code>true</code>, <code>bool</code>, <code>compl</code>, …):</p>
|
||||
<pre><code> (sed -n '1p' c11; sed -n '2,$p' 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>
|
||||
|
||||
@@ -744,7 +744,7 @@ Keep in mind the way I display the generations and the fact that generation 0
|
||||
has no parents; it is generation 1 that starts working towards the goal. You'll
|
||||
see also **(mutation)** at the end of the line at this point (if you enable
|
||||
monkey mode you'll find that it shows something else). The lines that only have
|
||||
`` are separators: you won't see this between generation 0 and 1 but you will
|
||||
back-quote ("\`") are separators: you won't see this between generation 0 and 1 but you will
|
||||
between future generations - as well as the final answer (if the answer is in
|
||||
generation 0 you won't see the ``).
|
||||
|
||||
|
||||
@@ -895,7 +895,9 @@ bash shell built-in utility: that isn’t output from my entry.</p>
|
||||
has no parents; it is generation 1 that starts working towards the goal. You’ll
|
||||
see also <strong>(mutation)</strong> at the end of the line at this point (if you enable
|
||||
monkey mode you’ll find that it shows something else). The lines that only have
|
||||
<code>are separators: you won't see this between generation 0 and 1 but you will between future generations - as well as the final answer (if the answer is in generation 0 you won't see the</code>).</p>
|
||||
back-quote (“`”) are separators: you won’t see this between generation 0 and 1 but you will
|
||||
between future generations - as well as the final answer (if the answer is in
|
||||
generation 0 you won’t see the ``).</p>
|
||||
<div id="test">
|
||||
<p>One final thing to consider is that <strong>the program doesn’t directly read from a
|
||||
file</strong>. This combined with the way the shell works could possibly confuse some
|
||||
|
||||
@@ -412,7 +412,6 @@ performance, at the cost of a much larger parameter space.
|
||||
|
||||
**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.
|
||||
@@ -422,7 +421,6 @@ 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">
|
||||
|
||||
|
||||
@@ -686,15 +686,15 @@ 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 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,
|
||||
<p>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.
|
||||
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
|
||||
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
|
||||
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>
|
||||
limit stacksize 65532 (replacing 65532 with the actual hard limit).</p>
|
||||
<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>
|
||||
|
||||
@@ -615,8 +615,8 @@ might look like (I set the starting size to 150 and had only just started):</p>
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>If I continue going up I will see:</p>
|
||||
<pre><code>OUCH!
|
||||
X:20/49 Y:1/16 S:150/658 B:0</code></pre>
|
||||
<pre><code> OUCH!
|
||||
X:20/49 Y:1/16 S:150/658 B:0</code></pre>
|
||||
<div id="cannibalism">
|
||||
<h1 id="gameplay-cannibalism"><a href="#toc">Gameplay: Cannibalism</a></h1>
|
||||
</div>
|
||||
|
||||
@@ -294,8 +294,8 @@ might look like (I set the starting size to 150 and had only just started):
|
||||
If I continue going up I will see:
|
||||
|
||||
```
|
||||
OUCH!
|
||||
X:20/49 Y:1/16 S:150/658 B:0
|
||||
OUCH!
|
||||
X:20/49 Y:1/16 S:150/658 B:0
|
||||
```
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -448,7 +448,7 @@ you encounter should give you more appreciation for the entry.</p>
|
||||
<p>If you have the energy to type in the text, or if you have access to a machine
|
||||
readable version of these programs, you should next consider some preprocessing
|
||||
such as:</p>
|
||||
<pre><code>sed -e '/^#.*include/d' prog.c | cc -E</code></pre>
|
||||
<pre><code> sed -e '/^#.*include/d' prog.c | cc -E</code></pre>
|
||||
<p>This strips away comments and expands the program’s macros without having things
|
||||
such as includes and macros cluttering up the output. If the entry requires or
|
||||
suggests the use of compile line options (such as <code>-Dindex=strchr</code>) they should
|
||||
|
||||
@@ -93,7 +93,7 @@ readable version of these programs, you should next consider some preprocessing
|
||||
such as:
|
||||
|
||||
``` <!---sh-->
|
||||
sed -e '/^#.*include/d' prog.c | cc -E
|
||||
sed -e '/^#.*include/d' prog.c | cc -E
|
||||
```
|
||||
|
||||
This strips away comments and expands the program's macros without having things
|
||||
|
||||
@@ -80,7 +80,7 @@ Machine](https://web.archive.org) as of [2022 Dec
|
||||
*HINT*: To uncompress a given bzip2 compressed tarball file, use:
|
||||
|
||||
``` <!---sh-->
|
||||
tar -jxvf file.tar.bz2
|
||||
tar -jxvf file.tar.bz2
|
||||
```
|
||||
|
||||
where "_file.tar.bz2_" is the name of a file found in this directory.
|
||||
@@ -89,10 +89,10 @@ To uncompress all of the 2022 Dec 28 archive using the year based
|
||||
bzip2 compressed tarball files:
|
||||
|
||||
``` <!---sh-->
|
||||
for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
|
||||
rm -rf "$year"
|
||||
tar -jxvf "archive-$year.tar.bz2"
|
||||
done
|
||||
for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
|
||||
rm -rf "$year"
|
||||
tar -jxvf "archive-$year.tar.bz2"
|
||||
done
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -445,14 +445,14 @@ Machine</a> as of [2022 Dec
|
||||
28)(https://web.archive.org/web/20201228005211/https://www.ioccc.org/).</p>
|
||||
<h2 id="how-to-unpack">How to unpack</h2>
|
||||
<p><em>HINT</em>: To uncompress a given bzip2 compressed tarball file, use:</p>
|
||||
<pre><code>tar -jxvf file.tar.bz2</code></pre>
|
||||
<pre><code> tar -jxvf file.tar.bz2</code></pre>
|
||||
<p>where “<em>file.tar.bz2</em>” is the name of a file found in this directory.</p>
|
||||
<p>To uncompress all of the 2022 Dec 28 archive using the year based
|
||||
bzip2 compressed tarball files:</p>
|
||||
<pre><code>for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
|
||||
rm -rf "$year"
|
||||
tar -jxvf "archive-$year.tar.bz2"
|
||||
done</code></pre>
|
||||
<pre><code> for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
|
||||
rm -rf "$year"
|
||||
tar -jxvf "archive-$year.tar.bz2"
|
||||
done</code></pre>
|
||||
<!--
|
||||
|
||||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||||
|
||||
+78
-78
@@ -5,7 +5,7 @@ least one winning IOCCC entry. For each author, there is a JSON
|
||||
file with the following name format:
|
||||
|
||||
```
|
||||
author/author_handle.json
|
||||
author/author_handle.json
|
||||
```
|
||||
|
||||
where `author_handle` is defined below.
|
||||
@@ -16,7 +16,7 @@ Each author of a winning IOCCC entry has an assigned `author_handle`,
|
||||
an IOCCC unique string that matches this regex:
|
||||
|
||||
``` <!---re-->
|
||||
^[0-9a-z][0-9a-z_]*$
|
||||
^[0-9a-z][0-9a-z_]*$
|
||||
```
|
||||
|
||||
The `author_handle`, by default, is derived from the name of the author.
|
||||
@@ -34,13 +34,13 @@ author or authors.
|
||||
For an anonymous `author`, their handle is one of these forms:
|
||||
|
||||
```
|
||||
Anonymous_year
|
||||
Anonymous_year
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```
|
||||
Anonymous_year.digits
|
||||
Anonymous_year.digits
|
||||
```
|
||||
|
||||
The latter form is in case there are more than one
|
||||
@@ -49,7 +49,7 @@ anonymous author in a given year.
|
||||
Anonymous author_handle's match this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||
```
|
||||
|
||||
## author_handle.json JSON syntax
|
||||
@@ -57,17 +57,17 @@ Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||
The `author_handle.json` must have the following JSON members:
|
||||
|
||||
``` <!---json-->
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "0.1 2023-05-22",
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "0.1 2023-05-22",
|
||||
```
|
||||
|
||||
There must be the following JSON members:
|
||||
|
||||
``` <!---json-->
|
||||
"full_name" : "Your Full Name",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "XX",
|
||||
"location_name" : "Formal location name",
|
||||
"full_name" : "Your Full Name",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "XX",
|
||||
"location_name" : "Formal location name",
|
||||
```
|
||||
|
||||
- `"full_name"` value is the author's formal full name.
|
||||
@@ -81,20 +81,20 @@ an `author` and the entry they submitted are to be listed.
|
||||
A `sort_word` matches this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
^[a-z][0-9a-z]*
|
||||
^[a-z][0-9a-z]*
|
||||
```
|
||||
|
||||
And there must be the following JSON members:
|
||||
|
||||
``` <!---json-->
|
||||
"email" : "user0@example.com",
|
||||
"url" : "https://a.host0.example.com/index.html",
|
||||
"alt_url" : "https://b.host0.example.com/index.html",
|
||||
"deprecated_twitter_handle" : "@something",
|
||||
"mastodon" : "@mastodon0@example.com",
|
||||
"mastodon_url" : "https://example.org/@mastodon0",
|
||||
"github" : "@github0",
|
||||
"affiliation" : "an affiliation group",
|
||||
"email" : "user0@example.com",
|
||||
"url" : "https://a.host0.example.com/index.html",
|
||||
"alt_url" : "https://b.host0.example.com/index.html",
|
||||
"deprecated_twitter_handle" : "@something",
|
||||
"mastodon" : "@mastodon0@example.com",
|
||||
"mastodon_url" : "https://example.org/@mastodon0",
|
||||
"github" : "@github0",
|
||||
"affiliation" : "an affiliation group",
|
||||
```
|
||||
|
||||
- `"email"` value is the author's email address as a JSON encoded string, or `null` if not given
|
||||
@@ -110,14 +110,14 @@ If an author does not have one of the previous set of values, or wishes to not d
|
||||
then the JSON value can be `null`. For example:
|
||||
|
||||
``` <!---json-->
|
||||
"email" : null,
|
||||
"url" : null,
|
||||
"alt_url" : null,
|
||||
"deprecated_twitter_handle" : null,
|
||||
"mastodon" : null,
|
||||
"mastodon_url" : null,
|
||||
"github" : null,
|
||||
"affiliation" : null,
|
||||
"email" : null,
|
||||
"url" : null,
|
||||
"alt_url" : null,
|
||||
"deprecated_twitter_handle" : null,
|
||||
"mastodon" : null,
|
||||
"mastodon_url" : null,
|
||||
"github" : null,
|
||||
"affiliation" : null,
|
||||
```
|
||||
|
||||
NOTE: The JSON value of `null` is NOT enclosed in double quotes.
|
||||
@@ -126,7 +126,7 @@ The `"winning_entry_set"` is an array of JSON members that indicate
|
||||
each of the IOCCC winning entries that the author is the author of. :-)
|
||||
|
||||
``` <!---json-->
|
||||
{ "entry_id" : "YYYY_dirname" }
|
||||
{ "entry_id" : "YYYY_dirname" }
|
||||
```
|
||||
|
||||
The `"YYYY_dirname"` is a entry ID in JSON encoded string form.
|
||||
@@ -137,11 +137,11 @@ NOTE: Due to mis-features in the JSON spec, the final JSON member must NOT be fo
|
||||
For example:
|
||||
|
||||
``` <!---json-->
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
```
|
||||
|
||||
### author_handle.json example
|
||||
@@ -149,56 +149,56 @@ For example:
|
||||
Here is a fictitious author_handle.json example:
|
||||
|
||||
``` <!---json-->
|
||||
{
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||
"author_handle" : "first0_last0",
|
||||
"full_name" : "First Middle Last",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "AU",
|
||||
"location_name" : "Australia",
|
||||
"email" : "user0@example.com",
|
||||
"url" : "https://a.host0.example.com/index.html",
|
||||
"alt_url" : "https://b.host0.example.com/index.html",
|
||||
"deprecated_twitter_handle" : "@something",
|
||||
"mastodon" : "@mastodon0@example.com",
|
||||
"mastodon_url" : "https://example.org/@mastodon0",
|
||||
"github" : "@github0",
|
||||
"affiliation" : "an affiliation group",
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
}
|
||||
{
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||
"author_handle" : "first0_last0",
|
||||
"full_name" : "First Middle Last",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "AU",
|
||||
"location_name" : "Australia",
|
||||
"email" : "user0@example.com",
|
||||
"url" : "https://a.host0.example.com/index.html",
|
||||
"alt_url" : "https://b.host0.example.com/index.html",
|
||||
"deprecated_twitter_handle" : "@something",
|
||||
"mastodon" : "@mastodon0@example.com",
|
||||
"mastodon_url" : "https://example.org/@mastodon0",
|
||||
"github" : "@github0",
|
||||
"affiliation" : "an affiliation group",
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Here is fictitious author_handle.json example where all entries that may be
|
||||
withheld are null:
|
||||
|
||||
``` <!---json-->
|
||||
{
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||
"author_handle" : "first0_last0",
|
||||
"full_name" : "First Middle Last",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "AU",
|
||||
"location_name" : "Australia",
|
||||
"email" : null,
|
||||
"url" : null,
|
||||
"alt_url" : null,
|
||||
"deprecated_twitter_handle" : null,
|
||||
"mastodon" : null,
|
||||
"mastodon_url" : null,
|
||||
"github" : null,
|
||||
"affiliation" : null,
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
}
|
||||
{
|
||||
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||
"author_handle" : "first0_last0",
|
||||
"full_name" : "First Middle Last",
|
||||
"sort_word" : "lowercaselast",
|
||||
"location_code" : "AU",
|
||||
"location_name" : "Australia",
|
||||
"email" : null,
|
||||
"url" : null,
|
||||
"alt_url" : null,
|
||||
"deprecated_twitter_handle" : null,
|
||||
"mastodon" : null,
|
||||
"mastodon_url" : null,
|
||||
"github" : null,
|
||||
"affiliation" : null,
|
||||
"winning_entry_set" : [
|
||||
{ "entry_id" : "1987_somedir" },
|
||||
{ "entry_id" : "2020_entrydir" },
|
||||
{ "entry_id" : "2024_dirname" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## NOTE to authors
|
||||
|
||||
+5
-5
@@ -421,13 +421,13 @@ Form a compressed tarball for an entry.
|
||||
Usage:
|
||||
|
||||
``` <!---sh-->
|
||||
bin/tar-entry.sh -v 1 YYYY/dir
|
||||
bin/tar-entry.sh -v 1 YYYY/dir
|
||||
```
|
||||
|
||||
Suggested usage:
|
||||
|
||||
``` <!---sh-->
|
||||
bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W
|
||||
bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W
|
||||
```
|
||||
|
||||
|
||||
@@ -438,19 +438,19 @@ Form a compressed tarball for an IOCCC year.
|
||||
Usage:
|
||||
|
||||
``` <!---sh-->
|
||||
bin/tar-year.sh -v 1 YYYY
|
||||
bin/tar-year.sh -v 1 YYYY
|
||||
```
|
||||
|
||||
Suggested usage:
|
||||
|
||||
``` <!---sh-->
|
||||
bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W
|
||||
bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W
|
||||
```
|
||||
|
||||
We recommend that this tool be invoked via the top level `Makefile`:
|
||||
|
||||
``` <!---sh-->
|
||||
make form_year_tarball
|
||||
make form_year_tarball
|
||||
```
|
||||
|
||||
|
||||
|
||||
+5
-5
@@ -564,17 +564,17 @@ We sort with lines starting with <code>!</code> fourth.</p>
|
||||
<h2 id="tar-entry.sh"><a href="../bin/tar-entry.sh">tar-entry.sh</a></h2>
|
||||
<p>Form a compressed tarball for an entry.</p>
|
||||
<p>Usage:</p>
|
||||
<pre><code>bin/tar-entry.sh -v 1 YYYY/dir</code></pre>
|
||||
<pre><code> bin/tar-entry.sh -v 1 YYYY/dir</code></pre>
|
||||
<p>Suggested usage:</p>
|
||||
<pre><code>bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W</code></pre>
|
||||
<pre><code> bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W</code></pre>
|
||||
<h2 id="tar-year.sh"><a href="../bin/tar-year.sh">tar-year.sh</a></h2>
|
||||
<p>Form a compressed tarball for an IOCCC year.</p>
|
||||
<p>Usage:</p>
|
||||
<pre><code>bin/tar-year.sh -v 1 YYYY</code></pre>
|
||||
<pre><code> bin/tar-year.sh -v 1 YYYY</code></pre>
|
||||
<p>Suggested usage:</p>
|
||||
<pre><code>bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W</code></pre>
|
||||
<pre><code> bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W</code></pre>
|
||||
<p>We recommend that this tool be invoked via the top level <code>Makefile</code>:</p>
|
||||
<pre><code>make form_year_tarball</code></pre>
|
||||
<pre><code> make form_year_tarball</code></pre>
|
||||
<h2 id="untar-entry.sh"><a href="../bin/untar-entry.sh">untar-entry.sh</a></h2>
|
||||
<p>Untar an entry’s a compressed tarball.</p>
|
||||
<p>Usage:</p>
|
||||
|
||||
@@ -1370,25 +1370,25 @@ original code has had a buffer size increase.</p>
|
||||
comment as well as the <code>int r=0,x,y=0</code> at the top of the file. If you look at
|
||||
each column go down that column you can see how it spells out the code! For
|
||||
instance the first column looks like:</p>
|
||||
<pre><code>i
|
||||
n
|
||||
c
|
||||
l
|
||||
u
|
||||
d
|
||||
e
|
||||
<pre><code> i
|
||||
n
|
||||
c
|
||||
l
|
||||
u
|
||||
d
|
||||
e
|
||||
|
||||
<
|
||||
s
|
||||
t
|
||||
d
|
||||
i
|
||||
o
|
||||
.
|
||||
h
|
||||
></code></pre>
|
||||
<
|
||||
s
|
||||
t
|
||||
d
|
||||
i
|
||||
o
|
||||
.
|
||||
h
|
||||
></code></pre>
|
||||
<p>If you join the lines you end up with:</p>
|
||||
<pre><code>#include <stdio.h></code></pre>
|
||||
<pre><code> #include <stdio.h></code></pre>
|
||||
<p>If you look at column 25 which is the end of the word ‘mh111’ and you go down to
|
||||
the next row you’ll see a 0 and if you go one row down another 0. This is the
|
||||
buffer size, 100, for <code>u</code>! The column to the left is the same for the <code>t</code>
|
||||
|
||||
@@ -1441,30 +1441,30 @@ instance the first column looks like:
|
||||
|
||||
|
||||
```
|
||||
i
|
||||
n
|
||||
c
|
||||
l
|
||||
u
|
||||
d
|
||||
e
|
||||
i
|
||||
n
|
||||
c
|
||||
l
|
||||
u
|
||||
d
|
||||
e
|
||||
|
||||
<
|
||||
s
|
||||
t
|
||||
d
|
||||
i
|
||||
o
|
||||
.
|
||||
h
|
||||
>
|
||||
<
|
||||
s
|
||||
t
|
||||
d
|
||||
i
|
||||
o
|
||||
.
|
||||
h
|
||||
>
|
||||
```
|
||||
|
||||
If you join the lines you end up with:
|
||||
|
||||
|
||||
``` <!---c-->
|
||||
#include <stdio.h>
|
||||
#include <stdio.h>
|
||||
```
|
||||
|
||||
If you look at column 25 which is the end of the word 'mh111' and you go down to
|
||||
|
||||
+125
-36
@@ -464,11 +464,11 @@ unquoted attribute values.</p>
|
||||
<p>If a short line is needed, use:</p>
|
||||
<pre><code> <hr style="width:10%;text-align:left;margin-left:0"></code></pre>
|
||||
<h2 id="do-not-use-the-strike-html-element">Do not use the strike HTML element</h2>
|
||||
<p>Please not use the HTML element:</p>
|
||||
<p>Please not use HTML elements:</p>
|
||||
<pre><code> <strike>...</strike> <=== no thank you</code></pre>
|
||||
<p>Use instead:</p>
|
||||
<pre><code> <del>...</del></code></pre>
|
||||
<h2 id="do-not-use-tt-html-elements">Do not use tt HTML elements</h2>
|
||||
<h2 id="do-not-use-the-tt-html-element">Do not use the tt HTML element</h2>
|
||||
<p>Please do not use the tt HTML elements:</p>
|
||||
<div class="sourceCode" id="cb16"><pre class="sourceCode html"><code class="sourceCode html"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a> <span class="dt"><</span><span class="kw">tt</span><span class="dt">></span>The HTML 5 obsolete tt element is obsolete<span class="dt"></</span><span class="kw">tt</span><span class="dt">></span> <span class="er"><</span>=== no thank you</span></code></pre></div>
|
||||
<p>Instead use either a monospaced span:</p>
|
||||
@@ -487,42 +487,131 @@ We request that you indent the code block by 4 spaces:
|
||||
</code></pre>
|
||||
<pre><code> This code block
|
||||
is intented 4 spaces</code></pre>
|
||||
<p>````</p>
|
||||
<h2 id="do-not-add-trailing-slash-on-void-html-elements">Do not add trailing slash on void HTML elements</h2>
|
||||
<p>Please do not use trailing slash on <a href="https://github.com/validator/validator/wiki/Markup-»-Void-elements">void HTML
|
||||
elements</a>.</p>
|
||||
<p>See also this note on <a href="https://github.com/validator/validator/wiki/Markup-»-Void-elements#trailing-slashes-in-void-element-start-tags-do-not-mark-the-start-tags-as-self-closing">trailing slashes in void-element start
|
||||
tags</a>.</p>
|
||||
<p>The trailing slash on void HTML elements has no effect and interacts badly with unquoted attribute values.</p>
|
||||
<p>For example, please do not use:</p>
|
||||
<pre><code> <br/> <=== no thank you</code></pre>
|
||||
<p>Instead use just:</p>
|
||||
<pre><code> <br></code></pre>
|
||||
<p>And for example, please do not use:</p>
|
||||
<pre><code> <hr/> <=== no thank you</code></pre>
|
||||
<p>Instead use just:</p>
|
||||
<pre><code> <hr></code></pre>
|
||||
<p>And for example, please do not use:</p>
|
||||
<pre><code> <img src="1984-anonymous-tattoo.jpg"
|
||||
<pre><code>
|
||||
One exception is where change bars are needed, such as
|
||||
those used in `next/rules.md` and in `next/guidelines.md`.
|
||||
|
||||
For example, `next/guidelines.md` uses this markdown code block:
|
||||
</code></pre>
|
||||
<pre><code> main() {
|
||||
| void please_do_not_submit_this() {
|
||||
| printf("The machine that goes BING!\n");
|
||||
}
|
||||
| please_do_not_submit_this();
|
||||
}</code></pre>
|
||||
<pre><code>
|
||||
|
||||
## Do not add trailing slash on void HTML elements
|
||||
|
||||
Please do not use trailing slash on [void HTML
|
||||
elements](https://github.com/validator/validator/wiki/Markup-»-Void-elements).
|
||||
|
||||
See also this note on [trailing slashes in void-element start
|
||||
tags](https://github.com/validator/validator/wiki/Markup-»-Void-elements#trailing-slashes-in-void-element-start-tags-do-not-mark-the-start-tags-as-self-closing).
|
||||
|
||||
The trailing slash on void HTML elements has no effect and interacts badly with unquoted attribute values.
|
||||
|
||||
For example, please do not use:
|
||||
|
||||
```
|
||||
<br/> <=== no thank you
|
||||
```
|
||||
|
||||
Instead use just:
|
||||
|
||||
```
|
||||
<br>
|
||||
```
|
||||
|
||||
And for example, please do not use:
|
||||
|
||||
```
|
||||
<hr/> <=== no thank you
|
||||
```
|
||||
|
||||
Instead use just:
|
||||
|
||||
```
|
||||
<hr>
|
||||
```
|
||||
|
||||
And for example, please do not use:
|
||||
|
||||
```
|
||||
<img src="1984-anonymous-tattoo.jpg"
|
||||
alt="image of a tattoo of the 1984 anonymous C code"
|
||||
width=600 height=401 /> <=== no thank you</code></pre>
|
||||
<p>Instead use just:</p>
|
||||
<pre><code> <img src="1984-anonymous-tattoo.jpg"
|
||||
width=600 height=401 /> <=== no thank you
|
||||
```
|
||||
|
||||
Instead use just:
|
||||
|
||||
```
|
||||
<img src="1984-anonymous-tattoo.jpg"
|
||||
alt="image of a tattoo of the 1984 anonymous C code"
|
||||
width=600 height=401></code></pre>
|
||||
<p>etc.</p>
|
||||
<h2 id="do-not-end-markdown-links-in">Do not end markdown links in ))</h2>
|
||||
<p>Please do not end a markdown links with a double closed parenthesis “))”.</p>
|
||||
<p>Markdown links that end in “))” complicate parsing and sometimes lead
|
||||
to incorrect URLs or file paths.</p>
|
||||
<p>Instead of:</p>
|
||||
<pre><code> [some text](https://example.com/foo_(bar)) <=== no thank you</code></pre>
|
||||
<p>Use:</p>
|
||||
<pre><code> [some text](https://example.com/foo_&#x28;bar&#x29;)</code></pre>
|
||||
<p>Instead of:</p>
|
||||
<pre><code> This thing ([some text](some/path)) is not ideal. <=== no thank you</code></pre>
|
||||
<p>Use:</p>
|
||||
<pre><code> This thing, [some text](some/path), is better.</code></pre>
|
||||
width=600 height=401>
|
||||
```
|
||||
|
||||
etc.
|
||||
|
||||
|
||||
## Do not end markdown links in ))
|
||||
|
||||
Please do not end a markdown links with a double closed parenthesis "))".
|
||||
|
||||
Markdown links that end in "))" complicate parsing and sometimes lead
|
||||
to incorrect URLs or file paths.
|
||||
|
||||
Instead of:
|
||||
|
||||
```
|
||||
[some text](https://example.com/foo_(bar)) <=== no thank you
|
||||
```
|
||||
|
||||
Use:
|
||||
|
||||
```
|
||||
[some text](https://example.com/foo_&#x28;bar&#x29;)
|
||||
```
|
||||
|
||||
Instead of:
|
||||
|
||||
```
|
||||
This thing ([some text](some/path)) is not ideal. <=== no thank you
|
||||
```
|
||||
|
||||
Use:
|
||||
|
||||
```
|
||||
This thing, [some text](some/path), is better.
|
||||
```
|
||||
|
||||
|
||||
## Do not place text on the next line after a markdown code block
|
||||
|
||||
Please do not place text on the next line after a markdown code block.
|
||||
Instead, place a blank line after the end of a markdown code block
|
||||
is this makes it easier to detect when markdown code blocks are
|
||||
not properly indented.
|
||||
|
||||
Instead of:
|
||||
</code></pre>
|
||||
<pre><code> int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}</code></pre>
|
||||
<p>C compilers cannot be given a -Wno-main-arg-errors flag. <=== no thank you</p>
|
||||
<pre><code>
|
||||
Use:
|
||||
</code></pre>
|
||||
<pre><code> int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}</code></pre>
|
||||
<p>C compilers cannot be given a -Wno-main-arg-errors flag.</p>
|
||||
<p>BTW: Not the blank line after the code block.
|
||||
````</p>
|
||||
<h2 id="do-not-put-s-or-markdown-link-titles">Do not put (‘s or )’ markdown link titles</h2>
|
||||
<p>Please do not use parenthesis inside the markdown link titles.</p>
|
||||
<p>Instead of:</p>
|
||||
|
||||
+55
-2
@@ -163,7 +163,7 @@ If a short line is needed, use:
|
||||
|
||||
## Do not use the strike HTML element
|
||||
|
||||
Please not use the HTML element:
|
||||
Please not use HTML elements:
|
||||
|
||||
```
|
||||
<strike>...</strike> <=== no thank you
|
||||
@@ -176,7 +176,7 @@ Use instead:
|
||||
```
|
||||
|
||||
|
||||
## Do not use tt HTML elements
|
||||
## Do not use the tt HTML element
|
||||
|
||||
Please do not use the tt HTML elements:
|
||||
|
||||
@@ -217,6 +217,22 @@ We request that you indent the code block by 4 spaces:
|
||||
```
|
||||
````
|
||||
|
||||
One exception is where change bars are needed, such as
|
||||
those used in `next/rules.md` and in `next/guidelines.md`.
|
||||
|
||||
For example, `next/guidelines.md` uses this markdown code block:
|
||||
|
||||
````
|
||||
```
|
||||
main() {
|
||||
| void please_do_not_submit_this() {
|
||||
| printf("The machine that goes BING!\n");
|
||||
}
|
||||
| please_do_not_submit_this();
|
||||
}
|
||||
```
|
||||
````
|
||||
|
||||
|
||||
## Do not add trailing slash on void HTML elements
|
||||
|
||||
@@ -303,6 +319,43 @@ Use:
|
||||
```
|
||||
|
||||
|
||||
## Do not place text on the next line after a markdown code block
|
||||
|
||||
Please do not place text on the next line after a markdown code block.
|
||||
Instead, place a blank line after the end of a markdown code block
|
||||
is this makes it easier to detect when markdown code blocks are
|
||||
not properly indented.
|
||||
|
||||
Instead of:
|
||||
|
||||
````
|
||||
```
|
||||
int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}
|
||||
```
|
||||
C compilers cannot be given a -Wno-main-arg-errors flag. <=== no thank you
|
||||
````
|
||||
|
||||
Use:
|
||||
|
||||
````
|
||||
```
|
||||
int
|
||||
main(int foo)
|
||||
{
|
||||
return foo;
|
||||
}
|
||||
```
|
||||
|
||||
C compilers cannot be given a -Wno-main-arg-errors flag.
|
||||
|
||||
BTW: Not the blank line after the code block.
|
||||
````
|
||||
|
||||
|
||||
## Do not put ('s or )' markdown link titles
|
||||
|
||||
Please do not use parenthesis inside the markdown link titles.
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<!-- END: this line ends content from: inc/head.default.html -->
|
||||
|
||||
<!-- -->
|
||||
<!-- This web page was formed via the tool: bin/gen-status.sh -->
|
||||
<!-- This web page was formed via the tool: bin/gen-top-html.sh -->
|
||||
<!-- The content of main section of this web page came from: next/guidelines.md -->
|
||||
<!-- -->
|
||||
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@
|
||||
<!-- END: this line ends content from: inc/head.default.html -->
|
||||
|
||||
<!-- -->
|
||||
<!-- This web page was formed via the tool: bin/gen-status.sh -->
|
||||
<!-- This web page was formed via the tool: bin/gen-top-html.sh -->
|
||||
<!-- The content of main section of this web page came from: next/rules.md -->
|
||||
<!-- -->
|
||||
|
||||
|
||||
@@ -1506,6 +1506,7 @@ changed from `char*s` to `char s[]`):
|
||||
```
|
||||
!.Xop.fssps!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo
|
||||
```
|
||||
|
||||
and then the call to `system()` had to be changed to:
|
||||
|
||||
``` <!---c-->
|
||||
|
||||
+14
-14
@@ -30,7 +30,7 @@ IOCCC. Each author has exactly one `author_handle`.
|
||||
For each `author_handle`, there will be a JSON file of the form:
|
||||
|
||||
```
|
||||
author/author_handle.json
|
||||
author/author_handle.json
|
||||
```
|
||||
|
||||
Because the `author_handle` is used to form a JSON filename, the string must be
|
||||
@@ -38,7 +38,7 @@ lower case POSIX safe string. Furthermore, the `author_handle` must be an ASCII
|
||||
string that matches this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
^[0-9a-z][0-9a-z_]*$
|
||||
^[0-9a-z][0-9a-z_]*$
|
||||
```
|
||||
|
||||
Default `author_handle`'s do not have multiple consecutive `_` (underscore)
|
||||
@@ -58,13 +58,13 @@ author.
|
||||
For an anonymous `author`, their handle is one of these forms:
|
||||
|
||||
```
|
||||
Anonymous_year
|
||||
Anonymous_year
|
||||
```
|
||||
|
||||
or:
|
||||
|
||||
```
|
||||
Anonymous_year.digits
|
||||
Anonymous_year.digits
|
||||
```
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ in the case of [2005/anon](/2005/anon/anon.c).
|
||||
Anonymous `author_handle`'s match this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||
```
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ Non-numeric `year` strings are lower case.
|
||||
A `year` string matches this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
[0-9a-z][0-9a-z][0-9a-z][0-9a-z]
|
||||
[0-9a-z][0-9a-z][0-9a-z][0-9a-z]
|
||||
```
|
||||
|
||||
The `year` directories reside directly below the top level directory.
|
||||
@@ -117,7 +117,7 @@ The `year` directories reside directly below the top level directory.
|
||||
Each `year` will have a file directory under it named:
|
||||
|
||||
```
|
||||
.year
|
||||
.year
|
||||
```
|
||||
|
||||
The contents of the `.year` file is the year string of the directory. For
|
||||
@@ -131,7 +131,7 @@ A `dir` is a POSIX safe string that holds an winner.
|
||||
A `dir` is a string that matches this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
^[a-z][0-9a-z.-]*$
|
||||
^[a-z][0-9a-z.-]*$
|
||||
```
|
||||
|
||||
Each `winner` is under its own individual directory. This directory
|
||||
@@ -143,7 +143,7 @@ is directly under a `year` directory.
|
||||
A string that identifies the winning entry. The string is of the form:
|
||||
|
||||
```
|
||||
year_dir
|
||||
year_dir
|
||||
```
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ year_dir
|
||||
Each `winner` directory will have a file directory under it named:
|
||||
|
||||
```
|
||||
.id
|
||||
.id
|
||||
```
|
||||
|
||||
The contents of `_.id_` file is the `winner_id` string for that `winner`.
|
||||
@@ -165,7 +165,7 @@ an `author` and the `winners` they submitted are to be listed.
|
||||
A `sort_word` match this regexp:
|
||||
|
||||
``` <!---re-->
|
||||
^[a-z][0-9a-z]*
|
||||
^[a-z][0-9a-z]*
|
||||
```
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ A text file of full names of each `author`: one full name per line.
|
||||
In the case of anonymous authors the form is:
|
||||
|
||||
```
|
||||
Anonymous YYYY
|
||||
Anonymous YYYY
|
||||
```
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ Run the script from the top level directory. The output should end in ":1".
|
||||
For example, this command should not produce any output.
|
||||
|
||||
``` <!---sh-->
|
||||
tmp/awards_check.sh | grep -v ':1$'
|
||||
tmp/awards_check.sh | grep -v ':1$'
|
||||
```
|
||||
|
||||
Any output is an indication that either an award name is incorrect, or the
|
||||
@@ -420,7 +420,7 @@ Temporary tool used to generate the `author/author_handle.json` files.
|
||||
The following command, executed in this directory, created the `author/` directory:
|
||||
|
||||
``` <!---sh-->
|
||||
rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_wins.csv ../author
|
||||
rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_wins.csv ../author
|
||||
```
|
||||
|
||||
|
||||
|
||||
+6
-6
@@ -56,7 +56,7 @@ A text file of full names of each `author`: one full name per line.
|
||||
In the case of anonymous authors the form is:
|
||||
|
||||
```
|
||||
Anonymous YYYY
|
||||
Anonymous YYYY
|
||||
```
|
||||
|
||||
|
||||
@@ -157,9 +157,9 @@ returns and appending a newline if it was missing.
|
||||
Fixing involves these actions:
|
||||
|
||||
``` <!---sh-->
|
||||
tr -d '\015' < input.csv > tmp.csv
|
||||
echo >> tmp.csv
|
||||
mv -f tmp.csv input.csv
|
||||
tr -d '\015' < input.csv > tmp.csv
|
||||
echo >> tmp.csv
|
||||
mv -f tmp.csv input.csv
|
||||
```
|
||||
|
||||
This tool also forms [path_list.built.txt](path_list.built.txt),
|
||||
@@ -343,8 +343,8 @@ A tool to run another tool over all _YYYY/dir_ entry directories.
|
||||
Examples:
|
||||
|
||||
``` <!---sh-->
|
||||
./run_all.sh -v 3 ./fake.gen_index.sh
|
||||
./run_all.sh -v 1 ./gen_entry_json.sh
|
||||
./run_all.sh -v 3 ./fake.gen_index.sh
|
||||
./run_all.sh -v 1 ./gen_entry_json.sh
|
||||
```
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user