[PATCH 3 of 4 v2] policy: add cffi policy for PyPy
Maciej Fijalkowski
fijall at gmail.com
Thu Jun 23 02:57:10 EDT 2016
# HG changeset patch
# User Maciej Fijalkowski <fijall at gmail.com>
# Date 1465306558 -7200
# Tue Jun 07 15:35:58 2016 +0200
# Node ID 42e8ffc4adb694a2a0a4787e129aa4e7d0296631
# Parent f5a166fffae1ade1e5b7bcad759a3899813bd91f
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)
diff -r f5a166fffae1 -r 42e8ffc4adb6 mercurial/__init__.py
--- a/mercurial/__init__.py Tue Jun 07 14:44:04 2016 +0200
+++ 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 policynoc:
raise ImportError()
zl = ziploader('mercurial')
@@ -86,7 +86,7 @@
stem = name.split('.')[-1]
try:
- if modulepolicy == 'py':
+ if modulepolicy in policynoc:
raise ImportError()
modinfo = imp.find_module(stem, mercurial.__path__)
diff -r f5a166fffae1 -r 42e8ffc4adb6 mercurial/policy.py
--- a/mercurial/policy.py Tue Jun 07 14:44:04 2016 +0200
+++ 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.
More information about the Mercurial-devel
mailing list