[PATCH] demandimport: don't enable when running under PyPy

Gregory Szorc gregory.szorc at gmail.com
Sun Nov 22 06:28:08 UTC 2015


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1448173681 28800
#      Sat Nov 21 22:28:01 2015 -0800
# Node ID 1ca55c7fa6209e6c2393fd98eb963b367585d04a
# Parent  0c3ee3d847d1d2f400987e62c2cc052224cfc924
demandimport: don't enable when running under PyPy

On demand importing doesn't work with PyPy for some reason. Don't honor
requests to enable demand importing when running under PyPy.

diff --git a/mercurial/demandimport.py b/mercurial/demandimport.py
--- a/mercurial/demandimport.py
+++ b/mercurial/demandimport.py
@@ -240,16 +240,20 @@ ignore = [
     'distutils.msvc9compiler'
     ]
 
 def isenabled():
     return builtins.__import__ == _demandimport
 
 def enable():
     "enable global demand-loading of modules"
+    # PyPy doesn't work with demand import.
+    if '__pypy__' in sys.builtin_module_names:
+        return
+
     if os.environ.get('HGDEMANDIMPORT') != 'disable':
         builtins.__import__ = _demandimport
 
 def disable():
     "disable global demand-loading of modules"
     builtins.__import__ = _origimport
 
 @contextmanager


More information about the Mercurial-devel mailing list