Fixes in html files of 1989

This commit is contained in:
Cody Boone Ferguson committed 2024-06-21 09:12:51 -07:00
1 parent e8d868e0ed
commit 871e1114f7
13 files changed
+74 -71

No files matched your search

+3 -3
View File
@@ -8,15 +8,15 @@ You may then wish to look at the Author's remarks for even more details.
Instructions for use: Run `make` to compile entries (it is possible that on
System V or non-Unix systems the Makefile needs to be changed).
The Makefile for ["Best self modifying program"](fubar/index.html) always uses
The Makefile for [Best self modifying program](fubar/index.html) always uses
the most portable version because there is no loss of functionality in
using it. In the case of the ["Best game"](tromp/index.html) entry, however, some
using it. In the case of the [Best game](tromp/index.html) entry, however, some
functionality is lost in the portable version and so its Makefile uses
the original program.
This year, the [Best of Show](jar.2/index.html) was given to the most useful program.
The ["Strangest abuse of the rules"](jar.1/index.html) award was given this year
The [Strangest abuse of the rules](jar.1/index.html) award was given this year
to stress the fact that starting in 1990, compiling entries must result a
regular executable file.
+3 -3
View File
@@ -48,7 +48,7 @@ On many systems the compiler will not allow you to send the object file to
```
As a last resort the `jar.1.sh` script provided simulates
writing the raw binary of the .o file to the terminal.
writing the raw binary of the `.o` object file to the terminal.
Abuse of the rules winning entry usually result in a change of the rules.
Starting in 1990, compiling entries must result an regular file
@@ -78,8 +78,8 @@ binary to the `/dev/tty` special file.
The use of piping raw binary thru stings makes the original 1989 output
more apparent, as was the case when using dumb CRT terminals (some
do dumb that they couldn't even process simple ANSI escape sequences)
were more common.
so dumb that they couldn't even process simple ANSI escape sequences)
was more common.
## Author's remarks:
+3 -3
View File
@@ -420,7 +420,7 @@ See the <a href="#alternate-code">Alternate code</a> section below for more deta
<code>/dev/tty</code>. The author suggested:</p>
<pre><code> cc -c -o /dev/tty jar.1.c</code></pre>
<p>As a last resort the <code>jar.1.sh</code> script provided simulates
writing the raw binary of the .o file to the terminal.</p>
writing the raw binary of the <code>.o</code> object file to the terminal.</p>
<p>Abuse of the rules winning entry usually result in a change of the rules.
Starting in 1990, compiling entries must result an regular file
which can be executed.</p>
@@ -446,8 +446,8 @@ to standard output, the original shell command that once wrote raw
binary to the <code>/dev/tty</code> special file.</p>
<p>The use of piping raw binary thru stings makes the original 1989 output
more apparent, as was the case when using dumb CRT terminals (some
do dumb that they couldn’t even process simple ANSI escape sequences)
were more common.</p>
so dumb that they couldn’t even process simple ANSI escape sequences)
was more common.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This program is (supposedly) the smallest C program able to print “Hello
world.”. The compilation itself produces the desired printout and the program
+5 -5
View File
@@ -31,11 +31,11 @@ NOTE: this entry will likely segfault on invalid input.
## Judges' remarks:
This is the most useful program submitted this year. It is a
rather large subset of lisp. It has no error recovery, and
performs rather poorly in a number of cases. Even so, placing
all this functionality in such a small, densely packed program,
is impressive enough to win the Best of Show award.
rather large subset of
[lisp](https://en.wikipedia.org/wiki/Lisp_&#x28;programming_language&#x29;).
It has no error recovery, and performs rather poorly in a number of cases. Even
so, placing all this functionality in such a small, densely packed program, is
impressive enough to win the `Best of Show` award.
## Author's remarks:
+5 -4
View File
@@ -425,10 +425,11 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
./try.sh try.lisp</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This is the most useful program submitted this year. It is a
rather large subset of lisp. It has no error recovery, and
performs rather poorly in a number of cases. Even so, placing
all this functionality in such a small, densely packed program,
is impressive enough to win the Best of Show award.</p>
rather large subset of
<a href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">lisp</a>.
It has no error recovery, and performs rather poorly in a number of cases. Even
so, placing all this functionality in such a small, densely packed program, is
impressive enough to win the <code>Best of Show</code> award.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This program implements a Lisp interpreter in 1465 bytes of source.
Some sophisticated features supported, e.g. functionals and recursion.
+4 -3
View File
@@ -41,7 +41,8 @@ it's a `#define` it's easy to set up.
You do not have to define `P` but if you do you can replace the value with
whatever you wish, as long as it's a positive `int` (or evaluates to a positive
`int` like the default `(A<<AP)` does). Too high a value will likely cause the
program to fail and a negative value will cause a compilation error.
program to fail and a negative value will cause a compilation error as will a
value that's not a number.
### Alternate use:
@@ -78,7 +79,7 @@ is read through stdin. The larger the template, the better the
result. A maximum of `2**12` chars are used. From the template,
the program calculates the statistics of chars that immediately
follow a given string (correlator string) of a certain length
(currently 4 - can be varied by changing the definition for P
(currently 4 - can be varied by changing the definition for `P`
accordingly). A character is randomly chosen, weighted by its
probability to occur after the correlator string. That
character is printed to stdout and placed at the end of the
@@ -86,7 +87,7 @@ correlator string, whose first character is discarded.
Meaningful words are therefore usually preserved, the effect on
sentences can be dramatically random.
You might want to vary the definition of P between 2 and 10 and
You might want to vary the definition of `P` between 2 and 10 and
observe the result.
+4 -3
View File
@@ -419,7 +419,8 @@ it’s a <code>#define</code> it’s easy to set up.</p>
<p>You do not have to define <code>P</code> but if you do you can replace the value with
whatever you wish, as long as it’s a positive <code>int</code> (or evaluates to a positive
<code>int</code> like the default <code>(A&lt;&lt;AP)</code> does). Too high a value will likely cause the
program to fail and a negative value will cause a compilation error.</p>
program to fail and a negative value will cause a compilation error as will a
value that’s not a number.</p>
<h3 id="alternate-use">Alternate use:</h3>
<pre><code> ./ovdluhe.alt</code></pre>
<h3 id="alternate-try">Alternate try:</h3>
@@ -439,14 +440,14 @@ is read through stdin. The larger the template, the better the
result. A maximum of <code>2**12</code> chars are used. From the template,
the program calculates the statistics of chars that immediately
follow a given string (correlator string) of a certain length
(currently 4 - can be varied by changing the definition for P
(currently 4 - can be varied by changing the definition for <code>P</code>
accordingly). A character is randomly chosen, weighted by its
probability to occur after the correlator string. That
character is printed to stdout and placed at the end of the
correlator string, whose first character is discarded.
Meaningful words are therefore usually preserved, the effect on
sentences can be dramatically random.</p>
<p>You might want to vary the definition of P between 2 and 10 and
<p>You might want to vary the definition of <code>P</code> between 2 and 10 and
observe the result.</p>
<!--
+10 -11
View File
@@ -19,11 +19,10 @@ out. See [alternate code](#alternate-code) below for more details.
This version was described by the author like:
I could have squeezed the program under 1024 bytes without the
trace subroutine, but I felt it was important for understanding
the program. Besides it is fun to watch the tape zooming back
and forth as the program runs. A much better debugger or trace
could easily be added.
> I could have squeezed the program under 1024 bytes without the trace
subroutine, but I felt it was important for understanding the program. Besides
it is fun to watch the tape zooming back and forth as the program runs. A much
better debugger or trace could easily be added.
### Alternate build:
@@ -117,15 +116,15 @@ with step 1. A call to the trace routine is just before step
The previous and current Fibonacci numbers are kept in base
1 form with the current on the right. The first three
steps set up the first two numbers, `1` and `1`. Then
[beginning with `@ (`] a marker of `III` is created and
steps set up the first two numbers, `1` and `1`. Then,
beginning with '`@ (`', a marker of '`III`' is created and
the current number is copied to the right of the
marker. Then (beginning with `OV `) the number is
marker. Then, beginning with '`OV `', the number is
converted to binary by repeatedly dividing by 2 leaving I
for remainder `1`, and II for remainder `0`. Next
(beginning with `WV `) the binary representation is
for remainder `1`, and II for remainder '`0`'. Next,
beginning with '`WV `', the binary representation is
printed and its symbols and the marker are erased.
Finally (beginning with `EEn`) the two numbers are
Finally, beginning with '`EEn`', the two numbers are
added and the current number copied to the left to
become the previous. Then the cycle repeats.
+12 -11
View File
@@ -409,11 +409,12 @@ out. See <a href="#alternate-code">alternate code</a> below for more details.</p
<pre><code> ./paul</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>This version was described by the author like:</p>
<p>I could have squeezed the program under 1024 bytes without the
trace subroutine, but I felt it was important for understanding
the program. Besides it is fun to watch the tape zooming back
and forth as the program runs. A much better debugger or trace
could easily be added.</p>
<blockquote>
<p>I could have squeezed the program under 1024 bytes without the trace
subroutine, but I felt it was important for understanding the program. Besides
it is fun to watch the tape zooming back and forth as the program runs. A much
better debugger or trace could easily be added.</p>
</blockquote>
<h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
@@ -482,15 +483,15 @@ with step 1. A call to the trace routine is just before step
<h3 id="quick-outline-of-the-turing-program">Quick outline of the Turing program:</h3>
<p>The previous and current Fibonacci numbers are kept in base
1 form with the current on the right. The first three
steps set up the first two numbers, <code>1</code> and <code>1</code>. Then
[beginning with <code>@ (</code>] a marker of <code>III</code> is created and
steps set up the first two numbers, <code>1</code> and <code>1</code>. Then,
beginning with ‘<code>@ (</code>’, a marker of ‘<code>III</code>’ is created and
the current number is copied to the right of the
marker. Then (beginning with <code>OV</code>) the number is
marker. Then, beginning with ‘<code>OV</code>’, the number is
converted to binary by repeatedly dividing by 2 leaving I
for remainder <code>1</code>, and II for remainder <code>0</code>. Next
(beginning with <code>WV</code>) the binary representation is
for remainder <code>1</code>, and II for remainder ‘<code>0</code>’. Next,
beginning with ‘<code>WV</code>’, the binary representation is
printed and its symbols and the marker are erased.
Finally (beginning with <code>EEn</code>) the two numbers are
Finally, beginning with ‘<code>EEn</code>’, the two numbers are
added and the current number copied to the left to
become the previous. Then the cycle repeats.</p>
<h3 id="portability">Portability</h3>
+1 -1
View File
@@ -21,7 +21,7 @@ than meets the PI.
## Author's remarks:
Passes lint, but not with the strictest options, for it contains some
"null-statements", as well two identifiers which are, if compilers only take 6
"null-statements", as well as two identifiers which are, if compilers only take 6
characters, the same. It also uses `write(2)`, so not totally system
independent.
+1 -1
View File
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlan
than meets the PI.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>Passes lint, but not with the strictest options, for it contains some
“null-statements”, as well two identifiers which are, if compilers only take 6
“null-statements”, as well as two identifiers which are, if compilers only take 6
characters, the same. It also uses <code>write(2)</code>, so not totally system
independent.</p>
<p>You are very much invited to pass this program through a C-beautifier (first
+11 -12
View File
@@ -125,18 +125,17 @@ system-wide high-score allowing a competition between users.
The author provided us with the following notes and new version of
the program:
Here is a somewhat improved version of my tetris entry. All the
changes are in the `popen()` at the end. Formerly a move was done
to the HI score file which is not permitted for other users. Now
other users can change the `HI` score file. The extra option `-m` is
passed to sort, so that it knows that its input files are already
sorted. The `-o` output option of sort is used instead of a
temporary file.
You may also want to consider giving just the raw option to `stty`
at the start and `-raw` at the end. This further reduces the size of
the program, but has the possible disadvantage that the program
can only by stopped by 'q' or by the `kill -9' command.
> Here is a somewhat improved version of my tetris entry. All the changes are
in the `popen(3)` at the end. Formerly a move was done to the HI score file
which is not permitted for other users. Now other users can change the `HI`
score file. The extra option `-m` is passed to sort, so that it knows that its
input files are already sorted. The `-o` output option of sort is used instead
of a temporary file.
>
> You may also want to consider giving just the raw option to `stty` at the
start and `-raw` at the end. This further reduces the size of the program, but
has the possible disadvantage that the program can only by stopped by 'q' or by
the `kill -9` command.
``` <!---c-->
long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
+12 -11
View File
@@ -481,17 +481,18 @@ system-wide high-score allowing a competition between users.</p>
<h3 id="additional-remarks-from-the-judges">Additional remarks from the judges:</h3>
<p>The author provided us with the following notes and new version of
the program:</p>
<p>Here is a somewhat improved version of my tetris entry. All the
changes are in the <code>popen()</code> at the end. Formerly a move was done
to the HI score file which is not permitted for other users. Now
other users can change the <code>HI</code> score file. The extra option <code>-m</code> is
passed to sort, so that it knows that its input files are already
sorted. The <code>-o</code> output option of sort is used instead of a
temporary file.</p>
<p>You may also want to consider giving just the raw option to <code>stty</code>
at the start and <code>-raw</code> at the end. This further reduces the size of
the program, but has the possible disadvantage that the program
can only by stopped by ‘q’ or by the `kill -9’ command.</p>
<blockquote>
<p>Here is a somewhat improved version of my tetris entry. All the changes are
in the <code>popen(3)</code> at the end. Formerly a move was done to the HI score file
which is not permitted for other users. Now other users can change the <code>HI</code>
score file. The extra option <code>-m</code> is passed to sort, so that it knows that its
input files are already sorted. The <code>-o</code> output option of sort is used instead
of a temporary file.</p>
<p>You may also want to consider giving just the raw option to <code>stty</code> at the
start and <code>-raw</code> at the end. This further reduces the size of the program, but
has the possible disadvantage that the program can only by stopped by ‘q’ or by
the <code>kill -9</code> command.</p>
</blockquote>
<pre><code> long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
=0,i=276,j,k,q[276],Q[276],*n=q,*m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1,
12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12,