Fixes in 1984 winning entries' README.md files

Formatting and possibly typos.
This commit is contained in:
Cody Boone Ferguson committed 2023-04-14 06:14:15 -07:00
1 parent 8efe343e63
commit 8d06e51e7e
4 files changed
+75 -50

No files matched your search

+13 -10
View File
@@ -1,22 +1,25 @@
# Dishonorable mention
Anonymous
Anonymous
## To build:
make all
```sh
make all
```
## To run:
./anonymous
```sh
./anonymous
```
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this to work
under macOS. The fix was to prototype `read()` prior to being defined and not
using `int, int, int` as the entry does. Instead the second arg is a `void *`.
In the `read()` function which actually calls `write(2)` the `i` (which is the
`void *` has to be cast to an `int`. This solves the problem. Thank you Cody for
In the `read()` function (which actually calls `write(2)`) the `i` (which is the
`void *`) has to be cast to an `int`. This solves the problem. Thank you Cody for
your assistance!
@@ -47,7 +50,7 @@ Some years after this entry was published we asked the author if they still
wished to remain anonymous and they said:
> Yes, I want to keep my anonymity. But you can tell them that I am well known
for my connection to the C language.'
for my connection to the C language.
### On the famous tattoo (see above):
@@ -63,10 +66,10 @@ Landon Curt Noll, the one who told the author about the tattoo, wrote back:
### Regrets:
Landon Curt Noll wrote that the author, if they had to do it over again, regrets not
making the program a one-liner and not moving the "int i" into an arg of main
making the program a one-liner and not moving the `int i` into an arg of main
(so that the line would have started with main). On the other hand the author
likes the "two line look" and the way hell o was split. :-) And they like the
fact that it ends in a smily face: ;}
likes the "two line look" and the way `hell o` was split. :-) And they like the
fact that it ends in a smily face: `;}`
## Copyright and CC BY-SA 4.0 License:
+11 -9
View File
@@ -1,10 +1,12 @@
# Second place award
Dave Decot
Dave Decot
## To build:
make all
```sh
make all
```
Originally [Yusuke Endoh](/winners.html#Yusuke_Endoh) supplied a patch so that
this entry would compile with gcc - but not clang - or at least some versions.
@@ -23,11 +25,11 @@ does not. Clang also requires that the second and third arguments to main be a
### Alternative code:
The alternative code, [decot.alt.c](decot.alt.c), is the fix that Cody made to
the version that does require `-traditional-cpp` and still runs afoul with
clang's requirement for the second and third arguments to main() being a `char
**` (the fixed version's main() only has one arg, an int). It is a minor fix to
Yusuke's fix. Thank you Yusuke and Cody!
The alternative code, [decot.alt.c](decot.alt.c), is the original code that
requires `-traditional-cpp` and will also run afoul with clang's requirement for
the second and third arguments to main() being a `char **` (the fixed version's
main() only has one arg, an int). It is a minor fix to Yusuke's fix. Thank you
Yusuke and Cody!
To try this version:
@@ -43,7 +45,7 @@ This program prints out a string of garbage.
The judges also offer this one comment: understand remarks!
### Historical comments:
### Historical remarks:
Some new (in 1984) compilers disliked line 15 of the original source, so we changed it
from:
@@ -65,7 +67,7 @@ To see what we mean look at the source file in the
## Author's remarks:
No comments were provided by the author.
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
+21 -11
View File
@@ -1,14 +1,18 @@
# Third place
Mike Laman
Mike Laman
## To build:
make all
```sh
make all
```
## To run:
./laman <positive number>
```sh
./laman <positive number>
```
### INABIAF - it's not a bug it's a feature :-)
@@ -22,9 +26,11 @@ arg.
The program accepts ONE POSITIVE argument. Seeing is believing, so try things
like:
./laman 4
./laman 9
./laman 16
```sh
./laman 4
./laman 9
./laman 16
```
This code should run you in circles.
@@ -33,19 +39,23 @@ This code should run you in circles.
Some new compilers dislike lines 6 and 10 of the source, so we changed
them from:
;++f)a[ b<<5|c] =d++,b+ =e;for( f=0;f<O
<<5|c]^ =a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
```c
;++f)a[ b<<5|c] =d++,b+ =e;for( f=0;f<O
<<5|c]^ =a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
```
to:
;++f)a[ b<<5|c] =d++,b+= e;for( f=0;f<O
<<5|c]^= a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
```c
;++f)a[ b<<5|c] =d++,b+= e;for( f=0;f<O
<<5|c]^= a[b<<5 |c]^=a[ (k-(b+1 ))<<5|c]
```
I hope you have a C beautifier!
## Author's remarks:
No comments were provided by the author.
No remarks were provided by the author.
## Copyright and CC BY-SA 4.0 License:
+30 -20
View File
@@ -1,58 +1,68 @@
# The Grand Prize
Sjoerd Mullender
Sjoerd Mullender
Robbert van Renesse
Robbert van Renesse
## To build:
make all
```sh
make all
```
## To run:
./mullender
```sh
./mullender
```
> NOTE: If your machine is not a Vax-11 or pdp-11, this program will
> not execute correctly. In later years, machine dependent
> code was discouraged.
## Alternative code:
### Alternative code:
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) added the alternative
code which lets you run this on other systems. He notes though that this was
only a slight fix and enhancement to the change in the [faq](/faq.md). Thank you
Cody for your assistance!
### To build:
#### To build:
make alt
```sh
make alt
```
### To run:
#### To run:
./mullender.alt [microseconds]
```sh
./mullender.alt [microseconds]
```
The default microseconds is 10000. This ability is so you can experiment with
The default microseconds is 10000. This feature is so you can experiment with
different speeds in between writes. It can be useful if your CPU is too slow or
too fast.
BTW: is there such a thing as too fast a CPU ? :-) actually yes for certain code
which is probably not as uncommon as you think :-) ).
BTW: is there such a thing as too fast a CPU ? :-) Actually yes for certain code
which is probably not as uncommon as you think :-).
Note that it is an int and it uses `atoi()` which does NOT check for
overflow! In fact it's argc itself.
## Try:
#### Try:
./mullender.alt
```sh
./mullender.alt
./mullender.alt 5000
./mullender.alt 5000
./mullender.alt 500
./mullender.alt 500
./mullender.alt 20000
./mullender.alt 20000
```
What happens if you hit enter after it writes a line of output?
@@ -84,7 +94,7 @@ BTW: this remains my (Landon Curt Noll's) all time favorite entries!
## Author's remarks:
These comments, found at
These remarks, found at
[https://lainsystems.com/posts/exploring-mullender-dot-c/](https://lainsystems.com/posts/exploring-mullender-dot-c/),
were provided by Sjoerd Mullender years later. We thank the author of the
article for the quote!
@@ -125,9 +135,9 @@ The rest is history.
Since this was the first contest, we hadn't seen any old entries, nor had any of
the other contestants. Of course we knew about #define and tricks you could do
with that, but we didn't need that for this program. In fact, we made it as
“standard” as possible. At the time there was this program called “cb” for C
“standard” as possible. At the time there was this program called `cb` for C
beautifier which would re-indent your program to make the layout look better. Our
program is idempotent under cb.
program is idempotent under `cb`.
## Copyright and CC BY-SA 4.0 License: