Merge pull request #2311 from xexyl/links-2

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2024-04-30 10:45:03 -07:00
commit d09c3fa878
17 files changed
+42 -27

No files matched your search

+6 -5
View File
@@ -47,15 +47,16 @@ For more detailed information see [2001 westley bugs](../../bugs.html#2001_westl
The author stated that one can sort (ignoring leading blanks i.e. `sort -b`) the The author stated that one can sort (ignoring leading blanks i.e. `sort -b`) the
code by line and it will always sort the order of the input. code by line and it will always sort the order of the input.
This is compiled by default; use `westley.sort` as you would `westley` above. This is generated and compiled by default; use `westley.sort` as you would
`westley` above.
## Punch card code: ## Punch card code:
The author also stated that if you just sort the code you'll get the with The author also stated that if you just sort the code (`sort westley.c`) you'll
`sort`) version that just prints out the punch card. The get a version that just prints out the punch card. The `westley.punch.c`
[westley.punch.c](%%REPO_URL%%/2001/westley/westley.punch.c) code is specifically so that Westley can punch (generated by `make` via `sort westley.c`) code is specifically so that Westley
everyone in the face! :-) This is also compiled by default. can punch everyone in the face! :-) This is also compiled by default.
### Punch card try: ### Punch card try:
+6 -5
View File
@@ -419,12 +419,13 @@ code</a> below.</p>
<h2 id="sorted-code">Sorted code:</h2> <h2 id="sorted-code">Sorted code:</h2>
<p>The author stated that one can sort (ignoring leading blanks i.e. <code>sort -b</code>) the <p>The author stated that one can sort (ignoring leading blanks i.e. <code>sort -b</code>) the
code by line and it will always sort the order of the input.</p> code by line and it will always sort the order of the input.</p>
<p>This is compiled by default; use <code>westley.sort</code> as you would <code>westley</code> above.</p> <p>This is generated and compiled by default; use <code>westley.sort</code> as you would
<code>westley</code> above.</p>
<h2 id="punch-card-code">Punch card code:</h2> <h2 id="punch-card-code">Punch card code:</h2>
<p>The author also stated that if you just sort the code you’ll get the with <p>The author also stated that if you just sort the code (<code>sort westley.c</code>) you’ll
<code>sort</code>) version that just prints out the punch card. The get a version that just prints out the punch card. The <code>westley.punch.c</code>
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/westley/westley.punch.c">westley.punch.c</a> code is specifically so that Westley can punch (generated by <code>make</code> via <code>sort westley.c</code>) code is specifically so that Westley
everyone in the face! :-) This is also compiled by default.</p> can punch everyone in the face! :-) This is also compiled by default.</p>
<h3 id="punch-card-try">Punch card try:</h3> <h3 id="punch-card-try">Punch card try:</h3>
<pre><code> echo &#39;Brian Westley does it again!&#39; | ./westley.punch 2&gt;/dev/null</code></pre> <pre><code> echo &#39;Brian Westley does it again!&#39; | ./westley.punch 2&gt;/dev/null</code></pre>
<h2 id="alternate-code">Alternate code:</h2> <h2 id="alternate-code">Alternate code:</h2>
+1 -1
View File
@@ -26,7 +26,7 @@ we are considering starting an IOCCC standards body just to reign in the likes
of Mr Howe. of Mr Howe.
This entry also has the dubious honour of being the only one to have been This entry also has the dubious honour of being the only one to have been
submitted with its own [configure](%%REPO_URL%%/2004/hibachi/build/configure) script. submitted with its own `configure` script.
NOTE: the author states there is a tarball `hibachi.tgz` but this was extracted NOTE: the author states there is a tarball `hibachi.tgz` but this was extracted
so the file does not exist here. so the file does not exist here.
+1 -1
View File
@@ -409,7 +409,7 @@ are not exactly sure how many organisations will be upset with this entry, but
we are considering starting an IOCCC standards body just to reign in the likes we are considering starting an IOCCC standards body just to reign in the likes
of Mr Howe.</p> of Mr Howe.</p>
<p>This entry also has the dubious honour of being the only one to have been <p>This entry also has the dubious honour of being the only one to have been
submitted with its own <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2004/hibachi/build/configure">configure</a> script.</p> submitted with its own <code>configure</code> script.</p>
<p>NOTE: the author states there is a tarball <code>hibachi.tgz</code> but this was extracted <p>NOTE: the author states there is a tarball <code>hibachi.tgz</code> but this was extracted
so the file does not exist here.</p> so the file does not exist here.</p>
<h2 id="authors-remarks">Author’s remarks:</h2> <h2 id="authors-remarks">Author’s remarks:</h2>
+2 -2
View File
@@ -103,7 +103,7 @@ can do so like:
## Judges' remarks: ## Judges' remarks:
Read the [sykes1.html](sykes1.html) page source. Read the `sykes1.html` (generated by `make`) page source.
Now then read the C source. Confused? :-) If it's not clear try: Now then read the C source. Confused? :-) If it's not clear try:
``` <!---sh--> ``` <!---sh-->
@@ -147,7 +147,7 @@ shows you how to build the cube piece by piece, rendered in glorious
3D ASCII. 3D ASCII.
ASCII art is all very well, but you also have a web browser, right? Well, just ASCII art is all very well, but you also have a web browser, right? Well, just
open the file [sykes1.html](sykes1.html). This html file is just a copy of open the file `sykes1.html`. This html file is just a copy of
[sykes1.c](%%REPO_URL%%/2006/sykes1/sykes1.c), which helpfully contains an html document that should make [sykes1.c](%%REPO_URL%%/2006/sykes1/sykes1.c), which helpfully contains an html document that should make
the browser display for you a nice animated GIF, showing you how to build the the browser display for you a nice animated GIF, showing you how to build the
cube. Rendered in glorious 3D color. cube. Rendered in glorious 3D color.
+2 -2
View File
@@ -436,7 +436,7 @@ maximum:</p>
can do so like:</p> can do so like:</p>
<pre><code> ./try.sh</code></pre> <pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2> <h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Read the <a href="sykes1.html">sykes1.html</a> page source. <p>Read the <code>sykes1.html</code> (generated by <code>make</code>) page source.
Now then read the C source. Confused? :-) If it’s not clear try:</p> Now then read the C source. Confused? :-) If it’s not clear try:</p>
<pre><code> diff -s sykes1.c sykes1.html</code></pre> <pre><code> diff -s sykes1.c sykes1.html</code></pre>
<p>For extra credit, understand what happens when you give this entry <p>For extra credit, understand what happens when you give this entry
@@ -460,7 +460,7 @@ need to be very lucky indeed to stumble across a solution.</p>
shows you how to build the cube piece by piece, rendered in glorious shows you how to build the cube piece by piece, rendered in glorious
3D ASCII.</p> 3D ASCII.</p>
<p>ASCII art is all very well, but you also have a web browser, right? Well, just <p>ASCII art is all very well, but you also have a web browser, right? Well, just
open the file <a href="sykes1.html">sykes1.html</a>. This html file is just a copy of open the file <code>sykes1.html</code>. This html file is just a copy of
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/sykes1.c">sykes1.c</a>, which helpfully contains an html document that should make <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/sykes1/sykes1.c">sykes1.c</a>, which helpfully contains an html document that should make
the browser display for you a nice animated GIF, showing you how to build the the browser display for you a nice animated GIF, showing you how to build the
cube. Rendered in glorious 3D color.</p> cube. Rendered in glorious 3D color.</p>
+1 -1
View File
@@ -15,7 +15,7 @@ code](#alternate-code) below.
``` ```
where `file` is the file to be checked for nesting errors. For example, you may where `file` is the file to be checked for nesting errors. For example, you may
try [incorrect.c](%%REPO_URL%%/2012/zeitak/incorrect.c) and the program itself. You may also run it on try [incorrect.1.quote.c](%%REPO_URL%%/2012/zeitak/incorrect.1.quote.c) and the program itself. You may also run it on
text files that are not code. text files that are not code.
+1 -1
View File
@@ -402,7 +402,7 @@ code</a> below.</p>
<h2 id="to-use">To use:</h2> <h2 id="to-use">To use:</h2>
<pre><code> ./zeitak &lt; file</code></pre> <pre><code> ./zeitak &lt; file</code></pre>
<p>where <code>file</code> is the file to be checked for nesting errors. For example, you may <p>where <code>file</code> is the file to be checked for nesting errors. For example, you may
try <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/zeitak/incorrect.c">incorrect.c</a> and the program itself. You may also run it on try <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/zeitak/incorrect.1.quote.c">incorrect.1.quote.c</a> and the program itself. You may also run it on
text files that are not code.</p> text files that are not code.</p>
<h2 id="try">Try:</h2> <h2 id="try">Try:</h2>
<pre><code> make test</code></pre> <pre><code> make test</code></pre>
+1 -1
View File
@@ -147,7 +147,7 @@ restrictions](#self-imposed-restrictions) section below for more details.
* The building process does not involve any OS tool beyond `cc(1)` and * The building process does not involve any OS tool beyond `cc(1)` and
`make(1)`. No `gzip(1)` compression! `a.c.gz` doesn't fit in 2053 bytes, anyway. `make(1)`. No `gzip(1)` compression! `a.c.gz` doesn't fit in 2053 bytes, anyway.
* Neither [hou.c](%%REPO_URL%%/2013/hou/hou.c) nor [a.c](%%REPO_URL%%/2013/hou/a.c) (the *real* decompressed source) uses * Neither [hou.c](%%REPO_URL%%/2013/hou/hou.c) nor `a.c` (the *real* decompressed source) uses
`#define` (or `cc -D`) at all. `#define` (or `cc -D`) at all.
* The source code is not required at runtime. * The source code is not required at runtime.
* `a.c` does not drop optional features to reduce size. There are pure * `a.c` does not drop optional features to reduce size. There are pure
+1 -1
View File
@@ -605,7 +605,7 @@ editing program, you need to convert the RGB values from 0..255 to 0..1, and
then put here its <em>square</em>. Only after squaring you get your real, lively color then put here its <em>square</em>. Only after squaring you get your real, lively color
in the output image, as opposed to something dull and gray. You need to do the in the output image, as opposed to something dull and gray. You need to do the
same if you use a RGB texture. And yes, that is the what the second <code>sqrt(3)</code> in same if you use a RGB texture. And yes, that is the what the second <code>sqrt(3)</code> in
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> is for.</p> <code>a.c</code> is for.</p>
<p>Going beyond colors, to define a shiny or dull surface one needs more maths, and <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 optics. The jargon for this is <code>BRDF</code> (Bidirectional Reflectance Distribution
Function) importance sampling. Let’s continue to function <code>o</code>.</p> Function) importance sampling. Let’s continue to function <code>o</code>.</p>
+1 -1
View File
@@ -312,7 +312,7 @@ editing program, you need to convert the RGB values from 0..255 to 0..1, and
then put here its *square*. Only after squaring you get your real, lively color then put here its *square*. Only after squaring you get your real, lively color
in the output image, as opposed to something dull and gray. You need to do the in the output image, as opposed to something dull and gray. You need to do the
same if you use a RGB texture. And yes, that is the what the second `sqrt(3)` in same if you use a RGB texture. And yes, that is the what the second `sqrt(3)` in
[a.c](%%REPO_URL%%/2013/hou/a.c) is for. `a.c` is for.
Going beyond colors, to define a shiny or dull surface one needs more maths, and Going beyond colors, to define a shiny or dull surface one needs more maths, and
optics. The jargon for this is `BRDF` (Bidirectional Reflectance Distribution optics. The jargon for this is `BRDF` (Bidirectional Reflectance Distribution
+1 -1
View File
@@ -494,7 +494,7 @@ restrictions</a> section below for more details.</li>
<ul> <ul>
<li>The building process does not involve any OS tool beyond <code>cc(1)</code> and <li>The building process does not involve any OS tool beyond <code>cc(1)</code> and
<code>make(1)</code>. No <code>gzip(1)</code> compression! <code>a.c.gz</code> doesn’t fit in 2053 bytes, anyway.</li> <code>make(1)</code>. No <code>gzip(1)</code> compression! <code>a.c.gz</code> doesn’t fit in 2053 bytes, anyway.</li>
<li>Neither <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> nor <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> (the <em>real</em> decompressed source) uses <li>Neither <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> nor <code>a.c</code> (the <em>real</em> decompressed source) uses
<code>#define</code> (or <code>cc -D</code>) at all.</li> <code>#define</code> (or <code>cc -D</code>) at all.</li>
<li>The source code is not required at runtime.</li> <li>The source code is not required at runtime.</li>
<li><code>a.c</code> does not drop optional features to reduce size. There are pure <li><code>a.c</code> does not drop optional features to reduce size. There are pure
+2 -1
View File
@@ -224,7 +224,8 @@ clean:
clobber: clean clobber: clean
${RM} -f ${TARGET} ${ALT_TARGET} ${RM} -f ${TARGET} ${ALT_TARGET}
${RM} -rf *.dSYM ${RM} -rf *.dSYM
${RM} -f main.c treacle.c ${RM} -f main.c treacle.c
${RM} -f alpha.txt ast.txt raw.txt reg.txt seq.txt
@-if [ -e sandwich ]; then \ @-if [ -e sandwich ]; then \
${RM} -f sandwich; \ ${RM} -f sandwich; \
echo 'ate sandwich'; \ echo 'ate sandwich'; \
+2 -2
View File
@@ -480,9 +480,9 @@ renaming and automatic register allocation only for this purpose.</p>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/alpha.rb">alpha.rb</a> applies “alpha-renaming” to the instruction sequence.</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/alpha.rb">alpha.rb</a> applies “alpha-renaming” to the instruction sequence.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/register.rb">register.rb</a> applies “register allocation”.</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/register.rb">register.rb</a> applies “register allocation”.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/assemble.rb">assemble.rb</a> converts the sequence to the final stack-machine instructions.</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/assemble.rb">assemble.rb</a> converts the sequence to the final stack-machine instructions.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/interp.c">interp.c</a> is an implementation of the VM.</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/vm.c">vm.c</a> is an implementation of the VM.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/link.rb">link.rb</a> generates <code>main.c</code> by linking the instructions and interpreter source.</li> <li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/link.rb">link.rb</a> generates <code>main.c</code> by linking the instructions and interpreter source.</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/gen-prog.c">gen-prog.c</a> generates <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/prog.c">prog.c</a> based on <code>main.c</code>.</li> <li><code>gen-prog.rb</code> generates <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/prog.c">prog.c</a> based on <code>main.c</code>.</li>
</ul> </ul>
<p>You can run the process by <code>rake</code> command. <code>ruby-minisat</code> gem is needed.</p> <p>You can run the process by <code>rake</code> command. <code>ruby-minisat</code> gem is needed.</p>
<pre><code> $ gem install ruby-minisat <pre><code> $ gem install ruby-minisat
+2 -2
View File
@@ -116,9 +116,9 @@ The compiler tool chain is the following.
* [alpha.rb](%%REPO_URL%%/2014/endoh1/alpha.rb) applies "alpha-renaming" to the instruction sequence. * [alpha.rb](%%REPO_URL%%/2014/endoh1/alpha.rb) applies "alpha-renaming" to the instruction sequence.
* [register.rb](%%REPO_URL%%/2014/endoh1/register.rb) applies "register allocation". * [register.rb](%%REPO_URL%%/2014/endoh1/register.rb) applies "register allocation".
* [assemble.rb](%%REPO_URL%%/2014/endoh1/assemble.rb) converts the sequence to the final stack-machine instructions. * [assemble.rb](%%REPO_URL%%/2014/endoh1/assemble.rb) converts the sequence to the final stack-machine instructions.
* [interp.c](%%REPO_URL%%/2014/endoh1/interp.c) is an implementation of the VM. * [vm.c](%%REPO_URL%%/2014/endoh1/vm.c) is an implementation of the VM.
* [link.rb](%%REPO_URL%%/2014/endoh1/link.rb) generates `main.c` by linking the instructions and interpreter source. * [link.rb](%%REPO_URL%%/2014/endoh1/link.rb) generates `main.c` by linking the instructions and interpreter source.
* [gen-prog.c](%%REPO_URL%%/2014/endoh1/gen-prog.c) generates [prog.c](%%REPO_URL%%/2014/endoh1/prog.c) based on `main.c`. * `gen-prog.rb` generates [prog.c](%%REPO_URL%%/2014/endoh1/prog.c) based on `main.c`.
You can run the process by `rake` command. `ruby-minisat` gem is needed. You can run the process by `rake` command. `ruby-minisat` gem is needed.
+5
View File
@@ -3804,6 +3804,9 @@ program to be used. Thus the Makefile rule looks like:</p>
<p>The <code>LDFLAGS</code> were updated to have <code>-lm</code> as the author suggested it uses the <p>The <code>LDFLAGS</code> were updated to have <code>-lm</code> as the author suggested it uses the
<code>math.h</code> library which not all systems link in by default (Linux for instance <code>math.h</code> library which not all systems link in by default (Linux for instance
does not).</p> does not).</p>
<p>The author noted that one can build <code>a.c</code> and refers to it in documentation. The
rule in the Makefile was originally removed as part of the above but it was
restored so that one can see what the author is talking about.</p>
<p>Further, after the file <code>2013/hou/doc/example.markdown</code> was moved to <p>Further, after the file <code>2013/hou/doc/example.markdown</code> was moved to
<a href="2013/hou/doc/example.html">2013/hou/doc/example.html</a> to match the rest of the repo <a href="2013/hou/doc/example.html">2013/hou/doc/example.html</a> to match the rest of the repo
this broke <code>make</code> which Cody also fixed.</p> this broke <code>make</code> which Cody also fixed.</p>
@@ -3880,6 +3883,8 @@ install <code>gem</code>. Then it tells you how to install <code>rake</code>. If
then it tells you to install a specific gem and then to try again. Finally if then it tells you to install a specific gem and then to try again. Finally if
<code>rake</code> succeeds it will verify that <code>prog</code> is executable and if it is it will <code>rake</code> succeeds it will verify that <code>prog</code> is executable and if it is it will
run it.</p> run it.</p>
<p>After more work on the manifest was done Cody had to update the <code>clobber</code> rule
to remove some text files so as to not cause problems with an invalid manifest.</p>
<p>Cody also added the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/try.sh">try.sh</a> script.</p> <p>Cody also added the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2014/endoh1/try.sh">try.sh</a> script.</p>
<p><strong><em>Barely</em></strong> worth noting but done nonetheless, Cody renamed the <code>read_me.html</code> <p><strong><em>Barely</em></strong> worth noting but done nonetheless, Cody renamed the <code>read_me.html</code>
file to <a href="2014/endoh1/spoilers.html">spoilers.html</a> to be clearer in its purpose as file to <a href="2014/endoh1/spoilers.html">spoilers.html</a> to be clearer in its purpose as
+7
View File
@@ -4859,6 +4859,10 @@ The `LDFLAGS` were updated to have `-lm` as the author suggested it uses the
`math.h` library which not all systems link in by default (Linux for instance `math.h` library which not all systems link in by default (Linux for instance
does not). does not).
The author noted that one can build `a.c` and refers to it in documentation. The
rule in the Makefile was originally removed as part of the above but it was
restored so that one can see what the author is talking about.
Further, after the file `2013/hou/doc/example.markdown` was moved to Further, after the file `2013/hou/doc/example.markdown` was moved to
[2013/hou/doc/example.html](2013/hou/doc/example.html) to match the rest of the repo [2013/hou/doc/example.html](2013/hou/doc/example.html) to match the rest of the repo
this broke `make` which Cody also fixed. this broke `make` which Cody also fixed.
@@ -4963,6 +4967,9 @@ then it tells you to install a specific gem and then to try again. Finally if
`rake` succeeds it will verify that `prog` is executable and if it is it will `rake` succeeds it will verify that `prog` is executable and if it is it will
run it. run it.
After more work on the manifest was done Cody had to update the `clobber` rule
to remove some text files so as to not cause problems with an invalid manifest.
Cody also added the [try.sh](%%REPO_URL%%/2014/endoh1/try.sh) script. Cody also added the [try.sh](%%REPO_URL%%/2014/endoh1/try.sh) script.
**_Barely_** worth noting but done nonetheless, Cody renamed the `read_me.html` **_Barely_** worth noting but done nonetheless, Cody renamed the `read_me.html`