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:
1 parent
394f710bc3
commit
360708f858
120 files changed
+1198
-1024
No files matched your search
@@ -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. :(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Best one-liner
|
||||
|
||||
Dave Burton\
|
||||
<http://ioccc.snox.net>
|
||||
Dave Burton\
|
||||
<http://ioccc.snox.net>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
+23
-23
@@ -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....
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Most likely to be awarded
|
||||
|
||||
Marcin Ciura <mciura@gmail.com>
|
||||
Marcin Ciura\
|
||||
<mciura@gmail.com>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
@@ -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,6 +1,6 @@
|
||||
# Most unstable
|
||||
|
||||
Edward Giles
|
||||
Edward Giles
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
+138
-120
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -1,7 +1,7 @@
|
||||
# Most shifty
|
||||
|
||||
Don Yang\
|
||||
<http://uguu.org/>
|
||||
Don Yang\
|
||||
<http://uguu.org/>
|
||||
|
||||
|
||||
## To build:
|
||||
|
||||
Reference in new issue
Block a user