lolcat/README.md
2016-11-18 10:31:10 +01:00

1.7 KiB

What?

Screenshot

Installation

Archlinux

There's an AUR package:

$ yaourt -S c-lolcat

Others

$ make && sudo make install

If this can't find musl and you have it installed somewhere, run

$ make MUSLDIR=/path/to/musl

If you don't have a musl around yet, the easiest way to build is to run

$ git submodule init
$ git submodule update
$ make

This will checkout and build musl in this repository's musl dir.

Why?

This lolcat clone is an attempt to reduce the world's carbon dioxide emissions by optimizing inefficient code. It's >10x as fast and <0.1% as large as the original one.

newton~/d/lolcat <3 dmesg>foo
newton~/d/lolcat <3 time upstream/bin/lolcat foo
13.51user 1.34system 0:15.99elapsed 92%CPU (0avgtext+0avgdata 10864maxresident)k
0inputs+0outputs (0major+1716minor)pagefaults 0swaps
newton~/d/lolcat <3 time ./lolcat foo
0.02user 0.00system 0:00.09elapsed 34%CPU (0avgtext+0avgdata 1936maxresident)k
0inputs+0outputs (0major+117minor)pagefaults 0swaps

Bonus comparison with python-lolcat:

newton~/d/lolcat <3 dmesg>foo
$ time python-lolcat foo
12.27user 0.00system 0:12.29elapsed 99%CPU (0avgtext+0avgdata 11484maxresident)k
0inputs+0outputs (0major+1627minor)pagefaults 0swaps
$ time c-lolcat foo
0.29user 0.00system 0:00.30elapsed 98%CPU (0avgtext+0avgdata 468maxresident)k
0inputs+0outputs (0major+21minor)pagefaults 0swaps

(Read: c-lolcat << python-lolcat << ruby-lolcat)