Author: Ronan Lamy <[email protected]>
Branch: py3.3-bootstrap-hack
Changeset: r82949:eb02742ce71d
Date: 2016-03-10 19:01 +0000
http://bitbucket.org/pypy/pypy/changeset/eb02742ce71d/
Log: Initialise the filesystem encoding only after imports have been
bootstrapped.
Creating it requires importing the 'encodings' module from the
stdlib, so the stdlib path needs to have been computed first.
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
@@ -769,6 +769,7 @@
# import os, which is used a bit everywhere in app_main, but only imported
# *after* setup_bootstrap_path
setup_bootstrap_path(executable)
+ sys.pypy_initfsencoding()
try:
cmdline = parse_command_line(argv)
except CommandLineError as e:
@@ -862,7 +863,7 @@
sys.pypy_find_stdlib = pypy_find_stdlib
sys.pypy_resolvedirof = pypy_resolvedirof
sys.cpython_path = sys.path[:]
-
+
try:
sys.exit(int(entry_point(sys.argv[0], sys.argv[1:])))
finally:
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
@@ -40,6 +40,7 @@
'pypy_find_stdlib' : 'initpath.pypy_find_stdlib',
'pypy_find_executable' : 'initpath.pypy_find_executable',
'pypy_resolvedirof' : 'initpath.pypy_resolvedirof',
+ 'pypy_initfsencoding' : 'initpath.pypy_initfsencoding',
'_getframe' : 'vm._getframe',
'_current_frames' : 'currentframes._current_frames',
@@ -97,12 +98,7 @@
def startup(self, space):
if space.config.translating:
- if not we_are_translated():
- # don't get the filesystemencoding at translation time
- assert self.filesystemencoding is None
- else:
- from pypy.module.sys.interp_encoding import
_getfilesystemencoding
- self.filesystemencoding = _getfilesystemencoding(space)
+ assert self.filesystemencoding is None
if not space.config.translating or we_are_translated():
from pypy.module.sys import version
diff --git a/pypy/module/sys/initpath.py b/pypy/module/sys/initpath.py
--- a/pypy/module/sys/initpath.py
+++ b/pypy/module/sys/initpath.py
@@ -12,6 +12,7 @@
from pypy.interpreter.gateway import unwrap_spec
from pypy.module.sys.state import get as get_state
+from pypy.module.sys.interp_encoding import _getfilesystemencoding
PLATFORM = sys.platform
_MACOSX = sys.platform == 'darwin'
@@ -166,7 +167,9 @@
space.setitem(space.sys.w_dict, space.wrap('base_exec_prefix'), w_prefix)
return space.newlist([_w_fsdecode(space, p) for p in path])
+def pypy_initfsencoding(space):
+ space.sys.filesystemencoding = _getfilesystemencoding(space)
+
def _w_fsdecode(space, b):
return space.fsdecode(space.wrapbytes(b))
-
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit