Files
Landon Curt Noll f64f244ba6 update due to recent commits
The largest change was due to modifying `ioccc.css`
that resulted in all year and entry tarballs being modified.

Ran `make update` to perform the above.
2025-11-25 22:42:46 -08:00
..
2025-07-12 10:41:06 -07:00
2023-07-06 21:49:38 -07:00
2024-10-15 12:12:29 -07:00

To build:

    make

To use:

    ./prog < file > file.Z

Try:

    ./try.sh

Judges' remarks:

Finally, IOCCC now has its own text compression program, and it is short enough to qualify for the Best Short Program award! That said, can you compress it down to a one-liner, still producing files in the UNIX compress format, albeit sacrificing the compression ratio?

Can you explain why the /dev/zero file compresses identically by the entry and the standard compress(1) tool (see try.sh), but the text file compresses differently? The judges know. :)

Author's remarks:

A tiny "compress" tool:

Usage:

    ./prog < input.txt > input.txt.Z

Example:

    ./prog < guidelines.txt > guidelines.txt.Z

Check for correctness:

    zcat guidelines.txt.Z > guidelines2.txt
    diff -s guidelines.txt guidelines2.txt

Of course you can also use 2015/mills2 instead of zcat to verify the output file. The achieved compression ratio roughly matches that of the classic Unix compress(1) tool. And the source code is very compressed, too: It has exactly the same size as the paragraph you are reading right now. And exactly the same shape. Nevertheless, it is portable C99 code that runs on 32-bit and 64-bit platforms. It compiles without warnings on both GCC and Clang even with -Wextra and -Weverything.

2023 note: the above paragraph might not be true as far as number of bytes goes.