Author: Philip Jenvey <pjen...@underboss.org> Branch: py3k Changeset: r84554:5c6e635923c7 Date: 2016-05-21 13:23 -0700 http://bitbucket.org/pypy/pypy/changeset/5c6e635923c7/
Log: backout 25989b3230e5: this bootstrap hack is still required (CPython also does it) to avoid obscure recursion issues, e.g. test_importhooks.testImpWrapper under linux w/ LANG=C. StdErrPrinter should make the imports safe now under -v diff --git a/pypy/interpreter/app_main.py b/pypy/interpreter/app_main.py --- a/pypy/interpreter/app_main.py +++ b/pypy/interpreter/app_main.py @@ -277,7 +277,16 @@ if StdErrPrinter is not None: sys.stderr = sys.__stderr__ = StdErrPrinter(2) - if 1: # keep indentation + # Hack to avoid recursion issues during bootstrapping: pre-import + # the utf-8 and latin-1 codecs + encerr = None + try: + import encodings.utf_8 + import encodings.latin_1 + except ImportError as e: + encerr = e + + try: if encoding and ':' in encoding: encoding, errors = encoding.split(':', 1) else: @@ -296,6 +305,10 @@ print("Python error: <stdin> is a directory, cannot continue", file=sys.stderr) os._exit(1) + finally: + if encerr: + display_exception(encerr) + del encerr def create_stdio(fd, writing, name, encoding, errors, unbuffered): import io _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit