Mercurial’s Journey to and Reflections on Python 3. String literals are so fucking awesome in Python.
In Python 2, a ’’ string literal is a sequence of bytes. In Python 3, a ’’ string literal is a sequence of Unicode code points. These are fundamentally different types. And in Mercurial’s code base, most of our string types are binary by design: use of a Unicode based str for representing data is flat out wrong for our use case.