# HG changeset patch # User Yuya Nishihara # Date 1493215363 -32400 # Node ID a04f5c651e527ae23d7d274537059cbb7ec66023 # Parent 8a137ef6e5dae7b607ab1bb94567d7d3b4391880 policy: relax the default for in-place build We're going to make the 'c' policy more strict, where no missing attribute will be allowed. Since we want to run 'hg bisect' without rebuilding the C extension modules, we'll need a looser policy for development environment. The default for system installation isn't changed. Note that the current 'c' policy is practically 'allow'-ish as we have lots of adhoc fallbacks to pure functions. diff -r 8a137ef6e5da -r a04f5c651e52 mercurial/policy.py --- a/mercurial/policy.py Thu May 11 14:52:02 2017 -0700 +++ b/mercurial/policy.py Wed Apr 26 23:02:43 2017 +0900 @@ -18,8 +18,10 @@ # 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 = b'c' +# By default, fall back to the pure modules so the in-place build can +# run without recompiling the C extensions. This will be overridden by +# __modulepolicy__ generated by setup.py. +policy = b'allow' policynoc = (b'cffi', b'cffi-allow', b'py') policynocffi = (b'c', b'py') diff -r 8a137ef6e5da -r a04f5c651e52 setup.py --- a/setup.py Thu May 11 14:52:02 2017 -0700 +++ b/setup.py Wed Apr 26 23:02:43 2017 +0900 @@ -372,6 +372,9 @@ def run(self): if self.distribution.pure: modulepolicy = 'py' + elif self.build_lib == '.': + # in-place build should run without rebuilding C extensions + modulepolicy = 'allow' else: modulepolicy = 'c' with open("mercurial/__modulepolicy__.py", "w") as f: