First, I finally went back and added support for clang in my
Usage is easy: just set
LLVM_COMPILER=clang and it should Just Work.
In the process of implementing this clang support I ended up feeling
pretty bad about some of the old code. I ended up refactoring out
quite a bit and it is definitely cleaner now. I'm still not sold on
this whole "object-oriented programming" thing, but it worked
tolerably for a small chunk of Python code. The resulting objects
are, of course, completely arbitrary bundles of functionality.
I also fixed a bug in taffybar
that prevented non-ASCII window titles in xmonad from rendering
properly in the XMonadLog widget. It turns out that xmonad lies about
the types of strings it gets from X. While the type signature claims
that they are
Strings (lists of
Char), they are actually lists of
bytes stuffed into
Char. That is, the underlying utf-8 string was
not decoded before being converted into a
String. A simple call to
the utf8-string library fixed the issue.