Author: Armin Rigo <ar...@tunes.org>
Branch: py3.5
Changeset: r94718:248e6b2994ed
Date: 2018-06-01 10:22 +0200
http://bitbucket.org/pypy/pypy/changeset/248e6b2994ed/

Log:    Issue #2834

        Try to call _bootstrap._install() at translation time only, not at
        runtime.

diff --git a/pypy/module/_frozen_importlib/__init__.py 
b/pypy/module/_frozen_importlib/__init__.py
--- a/pypy/module/_frozen_importlib/__init__.py
+++ b/pypy/module/_frozen_importlib/__init__.py
@@ -1,4 +1,5 @@
 import os
+from rpython.rlib.objectmodel import we_are_translated
 from pypy.interpreter.mixedmodule import MixedModule
 from pypy.module.sys import initpath
 from pypy.module._frozen_importlib import interp_import
@@ -77,8 +78,17 @@
 
     def startup(self, space):
         """Copy our __import__ to builtins."""
+        if not we_are_translated():
+            self.startup_at_translation_time_only(space)
+        self.space.builtin.setdictvalue(space, '__import__', self.w_import)
+
+    def startup_at_translation_time_only(self, space):
+        # Issue #2834
+        # Call _bootstrap._install() at translation time only, not at
+        # runtime.  By looking around what it does, this should not
+        # freeze any machine-specific paths.  I *think* it only sets up
+        # stuff that depends on the platform.
         w_install = self.getdictvalue(space, '_install')
         space.call_function(w_install,
                             space.getbuiltinmodule('sys'),
                             space.getbuiltinmodule('_imp'))
-        self.space.builtin.setdictvalue(space, '__import__', self.w_import)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to