Mercurial > hg-stable
changeset 29490:b4d117cee636
policy: add cffi policy for PyPy
This adds cffi policy in the case where we don't want to use C modules,
but instead we're happy to rely on cffi (bundled with pypy)
author | Maciej Fijalkowski <fijall@gmail.com> |
---|---|
date | Tue, 07 Jun 2016 15:35:58 +0200 |
parents | 54ad81b0665f |
children | 7f0498bd284e |
files | mercurial/__init__.py mercurial/policy.py |
diffstat | 2 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/__init__.py Mon Jul 04 10:04:11 2016 -0700 +++ b/mercurial/__init__.py Tue Jun 07 15:35:58 2016 +0200 @@ -59,7 +59,7 @@ return zl try: - if modulepolicy == 'py': + if modulepolicy in policy.policynoc: raise ImportError() zl = ziploader('mercurial') @@ -86,7 +86,7 @@ stem = name.split('.')[-1] try: - if modulepolicy == 'py': + if modulepolicy in policy.policynoc: raise ImportError() modinfo = imp.find_module(stem, mercurial.__path__)
--- a/mercurial/policy.py Mon Jul 04 10:04:11 2016 -0700 +++ b/mercurial/policy.py Tue Jun 07 15:35:58 2016 +0200 @@ -14,10 +14,15 @@ # # c - require C extensions # allow - allow pure Python implementation when C loading fails +# cffi - required cffi versions (implemented within pure module) +# cffi-allow - allow pure Python implementation if cffi version is missing # py - only load pure Python modules # # By default, require the C extensions for performance reasons. policy = 'c' +policynoc = ('cffi', 'cffi-allow', 'py') +policynocffi = ('c', 'py') + try: from . import __modulepolicy__ policy = __modulepolicy__.modulepolicy @@ -29,7 +34,7 @@ # The canonical way to do this is to test platform.python_implementation(). # But we don't import platform and don't bloat for it here. if '__pypy__' in sys.builtin_module_names: - policy = 'py' + policy = 'cffi' # Our C extensions aren't yet compatible with Python 3. So use pure Python # on Python 3 for now.