matplotlib's experiences porting to Python 3.

- Easy things (that 2to3 handles pretty well):

- Unicode

- Exceptions

  exceptions_found = []
  try:
      do_something()
  except Exception as e:
      exceptions_found.append(e)

Since e now has a traceback member, this creates a cycle e -> traceback -> current stack frame -> e. This cycle will keep alive all local variables in all frames beneath the source of the exception.

- C/C++ issues