[pypy-commit] pypy py3k: hardcode the sys.std{in, out, err} encoding to ascii when running the tests. Two reasons:
antocuni
noreply at buildbot.pypy.org
Tue Jan 24 18:28:28 CET 2012
Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: py3k
Changeset: r51732:698aff2e6ca7
Date: 2012-01-24 16:36 +0100
http://bitbucket.org/pypy/pypy/changeset/698aff2e6ca7/
Log: hardcode the sys.std{in,out,err} encoding to ascii when running the
tests. Two reasons: 1. if you don't specificy the encoding, it ends
up using locate.getpreferredlocale() to guess one. I don't think
it's a good idea that the behavior of the tests depend on the locale
settings
2. importing locale is very slow on py.py. By using the explicit
encoding, initializing the space takes ~3 seconds instead of ~10 on
my machine
diff --git a/pypy/module/sys/__init__.py b/pypy/module/sys/__init__.py
--- a/pypy/module/sys/__init__.py
+++ b/pypy/module/sys/__init__.py
@@ -116,11 +116,14 @@
# Install standard streams for tests that don't call app_main
space.appexec([], """():
import sys, io
- sys.stdin = sys.__stdin__ = io.open(0, "r", closefd=False)
+ sys.stdin = sys.__stdin__ = io.open(0, "r", encoding="ascii",
+ closefd=False)
sys.stdin.buffer.raw.name = "<stdin>"
- sys.stdout = sys.__stdout__ = io.open(1, "w", closefd=False)
+ sys.stdout = sys.__stdout__ = io.open(1, "w", encoding="ascii",
+ closefd=False)
sys.stdout.buffer.raw.name = "<stdout>"
- sys.stderr = sys.__stderr__ = io.open(2, "w", closefd=False)
+ sys.stderr = sys.__stderr__ = io.open(2, "w", encoding="ascii",
+ closefd=False)
sys.stderr.buffer.raw.name = "<stderr>"
""")
More information about the pypy-commit
mailing list