HomePhabricator

Always write the session file in UTF-8.

Authored by zturner on Feb 1 2016, 10:12 AM.

Description

Always write the session file in UTF-8.

This patch attempts to solve the Python 2 / Python 3 incompatibilities by
introducing a new encoded_file abstraction that we use instead of
io.open(). The problem with the builtin implementation of io.open is
that read and write accept and return unicode objects, which are not
always convenient to work with in Python 2. We solve this by making
encoded_file.open() return the same object returned by io.open() but
with hooked read() and write() methods. These hooked methods will
accept binary or text data, and conditionally convert what it gets to a
unicode object using the correct encoding. When calling read() it
also does any conversion necessary to convert the output back into the
native string type of the running python version.

Differential Revision: http://reviews.llvm.org/D16736

llvm-svn: 259379

Details

Committed
zturnerFeb 1 2016, 10:12 AM
Differential Revision
D16736: Always write the session log file in UTF-8
Parents
rGf042c908b303: Fix misnamed variable in TestProcessAPI.py
Branches
Unknown
Tags
Unknown