cleanup winner README.md files

Fixed cases where there was a bad trailing backslash.

Improved a few cases where a code block was needed
to highlight some text.

Changed a few cases where a code block needed to
declared as, say, a sh code block.

Fixed a few cases where the winner information was not properly formatted.

Plus a few nits and clarifying text was added.
This commit is contained in:
Landon Curt Noll committed 2023-11-04 03:21:11 -07:00
1 parent 394f710bc3
commit 360708f858
120 files changed
+1198 -1024

No files matched your search

+9 -3
View File
@@ -173,18 +173,24 @@ standards compliant). This is used to print the usage instructions.
Compiling using
gcc -Wall -Wextra -pedantic
```sh
gcc -Wall -Wextra -pedantic
```
gives only `-Wmisleading-indentation` which is sensible considering the source code. While
clang -Wall -Wextra -pedantic
```sh
clang -Wall -Wextra -pedantic
```
is a bit more pessimistic and gives `-Wempty-body` (I like loops without
bodies), `-Wstring-plus-int` (since apparently some people think string+int is a
concatenation) and one of the weirder warnings I have seen from me splitting a
negative constant with whitespace. Compiling using
clang -Wall -Wextra -pedantic -Weverything
```sh
clang -Wall -Wextra -pedantic -Weverything
```
produces a few page faults of warnings and makes me feel generally bad about
myself. :(
+2 -2
View File
@@ -1,7 +1,7 @@
# Best one-liner
Dave Burton\
<http://ioccc.snox.net>
Dave Burton\
<http://ioccc.snox.net>
## To build:
+23 -23
View File
@@ -50,45 +50,45 @@ that is saying something! What is this program weighing and how much does it we
### tac - tokenize and count C and derivative languages:
```
tac computes C program size\
(obfuscated / otherwise)\
by splitting code as tokens small,\
tac computes C program size
(obfuscated / otherwise)
by splitting code as tokens small,
ignoring space, then counting all.
It tries quite hard to act the same\
as counting tool of I-OCCC fame.\
It tries quite hard to act the same
as counting tool of I-OCCC fame.
Some bugs were fixed, it's faster too,
and does more things, just add some glue!
It does far more than print the size:\
the token part's a better prize!\
With each upon on a single line,\
It does far more than print the size:
the token part's a better prize!
With each upon on a single line,
how many things can you design?
Included is a keyword sorter,\
de-obfuscator, freq reporter.\
With code produced as little parts,\
Included is a keyword sorter,
de-obfuscator, freq reporter.
With code produced as little parts,
just add your own creative arts.
But first you have to figure out\
the braces part, without a doubt!\
And then the code - it isn't easy:\
But first you have to figure out
the braces part, without a doubt!
And then the code - it isn't easy:
for as else? That's rather cheesy!
The rest of it is standard fare:\
expressions strange, the globals bare,\
confusing symbols one and oh,\
The rest of it is standard fare:
expressions strange, the globals bare,
confusing symbols one and oh,
and precedence you have to know.
The keyword list was made external,\
The keyword list was made external,
because of standards change eternal.
Thus other languages can now,\
Thus other languages can now,
be counted just like C, somehow!
I hope you find this code obscure\
enough to win, and thus procure\
a public place for all to see\
how badly I can butcher C!\
I hope you find this code obscure
enough to win, and thus procure
a public place for all to see
how badly I can butcher C!
```
### Said another way....
+2 -1
View File
@@ -1,6 +1,7 @@
# Most likely to be awarded
Marcin Ciura <mciura@gmail.com>
Marcin Ciura\
<mciura@gmail.com>
## To build:
+8 -8
View File
@@ -64,14 +64,14 @@ man ./weasel.man
## Author's remarks:
0. Preface
1. What it is
2. How it works
3. Hints (Keyboards, Options, Spoilers, Example Invocations)
4. Obfuscation (Techniques, Beauty)
5. How to build (S and N Constants, Compilation, Portability, Installing)
6. Final thoughts
7. Winning comments, thanks, dedications, links, etc.
0. Preface
1. What it is
2. How it works
3. Hints (Keyboards, Options, Spoilers, Example Invocations)
4. Obfuscation (Techniques, Beauty)
5. How to build (S and N Constants, Compilation, Portability, Installing)
6. Final thoughts
7. Winning comments, thanks, dedications, links, etc.
## **0. Preface**
+1 -1
View File
@@ -1,6 +1,6 @@
# Most unstable
Edward Giles
Edward Giles
## To build:
+138 -120
View File
@@ -127,33 +127,35 @@ At this point, type the rather cryptic command `rk(0,0)rkunix` -- this tells
the system to look at the first partition on the first RK05 fixed disk, find
the `rkunix` file and load it. You should eventually see the following:
>boot
\
40Boot
: rk(0,0)rkunix
\
Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983
mem = 135872
\
CONFIGURE SYSTEM:
xp ? csr 176700 vector 254 skipped: No CSR
rk 0 csr 177400 vector 220 attached
hk ? csr 177440 vector 210 skipped: No CSR
rl ? csr 174400 vector 160 skipped: No CSR
rp ? csr 176700 vector 254 skipped: No CSR
ht 0 csr 172440 vector 224 skipped: No CSR
tm 0 csr 172520 vector 224 skipped: No CSR
ts 0 csr 172520 vector 224 skipped: No CSR
dh ? csr 160020 vector 370 skipped: No CSR
dm ? csr 170500 vector 360 skipped: No autoconfig routines
dz ? csr 160110 vector 320 skipped: No CSR
dz ? csr 160110 vector 320 skipped: No CSR
dn 0 csr 175200 vector 300 skipped: No autoconfig routines
vp ? csr 177500 vector 174 skipped: No autoconfig routines
lp ? csr 177514 vector 200 skipped: No CSR
Erase=^?, kill=^U, intr=^C
#\
\
``
>boot
40Boot
: rk(0,0)rkunix
Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983
mem = 135872
CONFIGURE SYSTEM:
xp ? csr 176700 vector 254 skipped: No CSR
rk 0 csr 177400 vector 220 attached
hk ? csr 177440 vector 210 skipped: No CSR
rl ? csr 174400 vector 160 skipped: No CSR
rp ? csr 176700 vector 254 skipped: No CSR
ht 0 csr 172440 vector 224 skipped: No CSR
tm 0 csr 172520 vector 224 skipped: No CSR
ts 0 csr 172520 vector 224 skipped: No CSR
dh ? csr 160020 vector 370 skipped: No CSR
dm ? csr 170500 vector 360 skipped: No autoconfig routines
dz ? csr 160110 vector 320 skipped: No CSR
dz ? csr 160110 vector 320 skipped: No CSR
dn 0 csr 175200 vector 300 skipped: No autoconfig routines
vp ? csr 177500 vector 174 skipped: No autoconfig routines
lp ? csr 177514 vector 200 skipped: No CSR
Erase=^?, kill=^U, intr=^C
#
```
Congratulations, you are running BSD UNIX 2.9 in single-user mode as root.
On the other hand, if you did a typo somewhere, the boot loader has probably
@@ -166,15 +168,17 @@ root prompt. Most of the commands you are familiar with work here (this was
only a quarter of a century ago -- how much could things have changed?).
Let's try some:
# ls
.cshrc .profile boot hkunix mnt tmp
.login 2.9stamp dev lib mullender.c unix
.msgsrc bin etc lost+found rkunix usr
# df
Filesystem Mounted on kbytes used free % used
/dev/rk0 / 1958 1688 270 86%
# bin/cc mullender.c
# ./a.out
```
# ls
.cshrc .profile boot hkunix mnt tmp
.login 2.9stamp dev lib mullender.c unix
.msgsrc bin etc lost+found rkunix usr
# df
Filesystem Mounted on kbytes used free % used
/dev/rk0 / 1958 1688 270 86%
# bin/cc mullender.c
# ./a.out
```
The program you've just run was the [winner of the first IOCCC contest from
1984] [1] (or was it 1894?), a personal favorite of mine. It is rather
@@ -204,19 +208,23 @@ disk image. Type `make v6` to build it, then type `./prog` to run it.
You should see the boot loader prompt which is a single `@`:
@
```
@
```
At this point, you again must type a special incantation: `rkunix`. After that
you should see:
@rkunix
mem = 1035
RESTRICTED RIGHTS
\
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
#
```
@rkunix
mem = 1035
RESTRICTED RIGHTS
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
#
```
You are now running a single-user session of v6 UNIX. You might want to start
with `stty -lcase` because otherwise everything will be IN ALL CAPS.
@@ -226,35 +234,37 @@ may need to use Control-E to quit the simulation.
Assuming you're more careful than that, we can try a few commands:
@rkunix
mem = 1035
RESTRICTED RIGHTS
\
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
# STTY -LCASE
# ls
bin
dev
etc
hpunix
lib
mnt
rkunix
rpunix
tmp
unix
usr
# cat > foo.c
main()
{
printf("Hello, World!\n");
}
^D
# cc foo.c
# ./a.out
Hello, World!
```
@rkunix
mem = 1035
RESTRICTED RIGHTS
Use, duplication or disclosure is subject to
restrictions stated in Contract with Western
Electric Company, Inc.
# STTY -LCASE
# ls
bin
dev
etc
hpunix
lib
mnt
rkunix
rpunix
tmp
unix
usr
# cat > foo.c
main()
{
printf("Hello, World!\n");
}
^D
# cc foo.c
# ./a.out
Hello, World!
```
Why is Version 6 interesting? Well, it was the oldest version that I could
find a boot image of that had a C compiler... This C compiler is recognizably
@@ -306,15 +316,19 @@ You can try out this version by typing `make v0`. Since this version is a
native PDP-7 emulation, it gets its own binary. Type `./v0` to run it. You
should see the login prompt.
login:
```
login:
```
There are two user accounts `ken` and `dmr`, with the passwords `ken` and `dmr`
respectively. Let's try the Dennis Richie's `dmr` account:
login: dmr
password: dmr
@ ls
. ?
```
login: dmr
password: dmr
@ ls
. ?
```
Even though this is not Ken's doing, I feel this gives me licence to
include this quote from the BSD `fortune` program:
@@ -339,7 +353,9 @@ directory has a hard link to `dd`, which is the directory that holds all
of the user home directories (this will eventually become `/`, the root
path). We can do
@ ln dd dmr .
```
@ ln dd dmr .
```
To make the new link (note that `ln` doesn't support paths either, so you have
to give it three arguments -- a directory in the current dir, a file in that
@@ -347,46 +363,48 @@ directory, and the new name).
Now `ls` will work, and we can try some other things while we are here:
login: dmr
password: dmr
@ ln dd dmr .
@ ls
dd\
system\
as.s\
b_readme
bi.s\
bl.s\
db.s\
hello.b\
ops.s\
.\
@ cat b_readme
Here is how to compile and run hello.b:
\
@ bc hello.b hello.s
@ as ops.s bl.s hello.s bi.s
I
II
ops.s\
bl.s\
hello.s\
bi.s\
@ a.out
Hello, World!
\
\
@ bc hello.b hello.s
@ as ops.s bl.s hello.s bi.s
I
II
ops.s\
bl.s\
hello.s\
bi.s\
@ a.out
Hello, World!
@
```
login: dmr
password: dmr
@ ln dd dmr .
@ ls
dd
system
as.s
b_readme
bi.s
bl.s
db.s
hello.b
ops.s
.
@ cat b_readme
Here is how to compile and run hello.b:
@ bc hello.b hello.s
@ as ops.s bl.s hello.s bi.s
I
II
ops.s
bl.s
hello.s
bi.s
@ a.out
Hello, World!
@ bc hello.b hello.s
@ as ops.s bl.s hello.s bi.s
I
II
ops.s
bl.s
hello.s
bi.s
@ a.out
Hello, World!
@
```
The last command is invoking the compiler for an extremely early version of
the [B programming language] [3], the predecessor to C. Thompson missed the
+4 -2
View File
@@ -32,8 +32,10 @@ On terminal supports 24 bit color, has black background, and size at least 125x3
It is said by some students of Astronomy:
Oh, Be A Fine Gal, Kiss Me!
Oh, Be A Fine Gentleman, Kiss Me!
```
Oh, Be A Fine Gal, Kiss Me!
Oh, Be A Fine Gentleman, Kiss Me!
```
Many [Mnemonic variations](http://www.star.ucl.ac.uk/%7Epac/obafgkmrns.html) exist.
You might wish, on a star, to better understand the colors being displayed.
+29 -21
View File
@@ -48,36 +48,42 @@ it produces a build order with any dependency cycles gathered.
For example, the following input (provided as `example-1.txt`):
0 4 8
1 0
2 1 3
3 2
4 1
5 4 6
6 5 2
7 3 6 7
```
0 4 8
1 0
2 1 3
3 2
4 1
5 4 6
6 5 2
7 3 6 7
```
would be interpreted as:
0 -> 4, 8
1 -> 0
2 -> 1, 3
3 -> 2
4 -> 1
5 -> 4, 6
6 -> 5, 2
7 -> 3, 6, 7
```
0 -> 4, 8
1 -> 0
2 -> 1, 3
3 -> 2
4 -> 1
5 -> 4, 6
6 -> 5, 2
7 -> 3, 6, 7
```
So, node 0 has edges to / depends on nodes 4 and 8, node 1 depends on
node 0, and so on. Then, it groups the graph's nodes into
strongly connected components and prints them in reverse-topologically
sorted order:
0: 8
1: 0 1 4
2: 2 3
3: 5 6
4: 7
```
0: 8
1: 0 1 4
2: 2 3
3: 5 6
4: 7
```
It uses Tarjan's strongly connected components algorithm for the
grouping and reverse-topological sorting, along with a bonus hidden
@@ -90,8 +96,10 @@ Limitations".
To build:
```
${CC} -o prog prog.c -std=c11 -O3 \
-Wall -Wextra -pedantic -Wno-missing-prototypes
```
`-Wno-missing-prototypes` is necessary because there aren't any
prototypes. (They would put the program well over the size limit.)
+2 -2
View File
@@ -1,7 +1,7 @@
# Most shifty
Don Yang\
<http://uguu.org/>
Don Yang\
<http://uguu.org/>
## To build: