Trying out PyPy 7.3.0rc1 on macOS and Windows

This commit is contained in:
Yannick Jadoul
2020-02-15 23:24:51 +01:00
parent 186e09d543
commit e80f7f4774
5 changed files with 13 additions and 25 deletions
+2 -2
View File
@@ -27,8 +27,8 @@ def get_python_configurations(build_selector):
PythonConfiguration(identifier='cp36-manylinux_i686', path='/opt/python/cp36-cp36m'),
PythonConfiguration(identifier='cp37-manylinux_i686', path='/opt/python/cp37-cp37m'),
PythonConfiguration(identifier='cp38-manylinux_i686', path='/opt/python/cp38-cp38'),
PythonConfiguration(identifier='pp272-manylinux_pypy_x86_64', path='/opt/python/pp272-pypy_41'),
PythonConfiguration(identifier='pp372-manylinux_pypy_x86_64', path='/opt/python/pp372-pypy3_72'),
PythonConfiguration(identifier='pp27_72-manylinux_pypy_x86_64', path='/opt/python/pp272-pypy_41'),
PythonConfiguration(identifier='pp36_72-manylinux_pypy_x86_64', path='/opt/python/pp372-pypy3_72'),
]
# skip builds as required
+2 -14
View File
@@ -21,8 +21,8 @@ def get_python_configurations(build_selector):
PythonConfiguration(version='3.6', identifier='cp36-macosx_x86_64', url='https://www.python.org/ftp/python/3.6.8/python-3.6.8-macosx10.9.pkg'),
PythonConfiguration(version='3.7', identifier='cp37-macosx_x86_64', url='https://www.python.org/ftp/python/3.7.6/python-3.7.6-macosx10.9.pkg'),
PythonConfiguration(version='3.8', identifier='cp38-macosx_x86_64', url='https://www.python.org/ftp/python/3.8.1/python-3.8.1-macosx10.9.pkg'),
PythonConfiguration(version='2.7-v7.2.0', identifier='pp272-macosx_x86_64', url='https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-osx64.tar.bz2'),
PythonConfiguration(version='3.6-v7.2.0', identifier='pp372-macosx_x86_64', url='https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-osx64.tar.bz2'),
PythonConfiguration(version='2.7-v7.3.0rc1', identifier='pp27_73-macosx_x86_64', url='https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0rc1-osx64.tar.bz2'),
PythonConfiguration(version='3.6-v7.3.0rc1', identifier='pp36_73-macosx_x86_64', url='https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0rc1-osx64.tar.bz2'),
]
# skip builds as required
@@ -83,15 +83,6 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
python_symlink = 'python' if config.version[0] == '2' else 'python3'
os.symlink(os.path.join(installation_bin_path, pypy_executable), os.path.join(installation_bin_path, python_symlink))
# Workaround for a too high 'MACOSX_DEPLOYMENT_TARGET' in PyPy 2.7, v7.2.0; fixed in HEAD and next release
if config.version[0] == '2':
sysconfig_pypy_path = os.path.join('/tmp', pypy_base_filename, 'lib-python', '2.7', 'distutils', 'sysconfig_pypy.py')
with open(sysconfig_pypy_path, 'r') as f:
sysconfig_pypy_contents = f.read()
sysconfig_pypy_contents = sysconfig_pypy_contents.replace("g['MACOSX_DEPLOYMENT_TARGET'] = '10.14'", "g['MACOSX_DEPLOYMENT_TARGET'] = '10.7'")
with open(sysconfig_pypy_path, 'w') as f:
f.write(sysconfig_pypy_contents)
assert os.path.exists(os.path.join(installation_bin_path, 'python3' if config.version[0] == '3' else 'python'))
# Python bin folders on Mac don't symlink python3 to python, so we do that
@@ -111,9 +102,6 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
installation_bin_path,
env['PATH'],
])
# PyPy 3.6, v7.2.0 doesn't set MACOSX_DEPLOYMENT_TARGET in distutils.sysconfig, so let's set it ourselves until this gets settled
if config.identifier.startswith('pp') and config.version[0] == '3' and 'MACOSX_DEPLOYMENT_TARGET' not in env:
env['MACOSX_DEPLOYMENT_TARGET'] = '10.13'
env = environment.as_dictionary(prev_environment=env)
# check what version we're on
+2 -3
View File
@@ -47,8 +47,8 @@ def get_python_configurations(build_selector):
PythonConfiguration(version='3.7.6', arch="64", identifier='cp37-win_amd64', url=None),
PythonConfiguration(version='3.8.1', arch="32", identifier='cp38-win32', url=None),
PythonConfiguration(version='3.8.1', arch="64", identifier='cp38-win_amd64', url=None),
PythonConfiguration(version='2.7-v7.2.0', arch="32", identifier='pp272-win32', url='https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-win32.zip'),
PythonConfiguration(version='3.6-v7.2.0', arch="32", identifier='pp372-win32', url='https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-win32.zip'),
PythonConfiguration(version='2.7-v7.3.0rc1', arch="32", identifier='pp27_73-win32', url='https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0rc1-win32.zip'),
PythonConfiguration(version='3.6-v7.3.0rc1', arch="32", identifier='pp36_73-win32', url='https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0rc1-win32.zip'),
]
if IS_RUNNING_ON_TRAVIS:
@@ -111,7 +111,6 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
pypy_exe = 'pypy.exe' if config.version[0] == '2' else 'pypy3.exe'
simple_shell(['mklink', os.path.join(config_python_path, 'python.exe'), os.path.join(config_python_path, pypy_exe)])
simple_shell(['mklink', '/d', os.path.join(config_python_path, 'Scripts'), os.path.join(config_python_path, 'bin')])
simple_shell(['chcp', '437']) # Workaround for https://bitbucket.org/pypy/pypy/issues/3081/
assert os.path.exists(os.path.join(config_python_path, 'python.exe'))
# set up PATH and environment variables for run_with_env
+1 -1
View File
@@ -19,5 +19,5 @@ def test():
# also check that we got the right wheels built
expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0')
if 'pypy' not in w]
if '-pp' not in w]
assert set(actual_wheels) == set(expected_wheels)
+6 -5
View File
@@ -80,9 +80,12 @@ def expected_wheels(package_name, package_version, manylinux_versions=['manylinu
# {python tag} and {abi tag} are closely related to the python interpreter used to build the wheel
# so we'll merge them below as python_abi_tag
python_abi_tags = ['cp27-cp27m', 'cp35-cp35m', 'cp36-cp36m', 'cp37-cp37m', 'cp38-cp38',
'pp272-pypy_41', 'pp372-pypy3_72']
'pp273-pypy_73', 'pp373-pypy36_pp73']
if platform == 'linux':
python_abi_tags.append('cp27-cp27mu') # python 2.7 has 2 different ABI on manylinux
# We don't have PyPy 7.3.0rc1 yet on the manylinux image
python_abi_tags[python_abi_tags.index('pp273-pypy_73')] = 'pp272-pypy_41'
python_abi_tags[python_abi_tags.index('pp373-pypy36_pp73')] = 'pp372-pypy3_72'
architectures = {'cp': ['x86_64', 'i686'], 'pp': ['x86_64']}
platform_tags = {}
for python_implemention in architectures:
@@ -95,8 +98,6 @@ def expected_wheels(package_name, package_version, manylinux_versions=['manylinu
def get_platform_tags(python_abi_tag):
return platform_tags[python_abi_tag[:2]]
elif platform == 'windows':
# The PyPy3 ABI tag for Windows will be consistent in the 7.3.0 release
python_abi_tags[python_abi_tags.index('pp372-pypy3_72')] = 'pp372-pp372'
platform_tags = {'cp': ['win32', 'win_amd64'], 'pp': ['win32']}
def get_platform_tags(python_abi_tag):
return platform_tags[python_abi_tag[:2]]
@@ -104,9 +105,9 @@ def expected_wheels(package_name, package_version, manylinux_versions=['manylinu
elif platform == 'macos':
def get_platform_tags(python_abi_tag):
default_version = '10.9'
if python_abi_tag == 'pp272-pypy_41':
if python_abi_tag == 'pp273-pypy_73':
default_version = '10.7'
elif python_abi_tag == 'pp372-pypy3_72':
elif python_abi_tag == 'pp373-pypy36_pp73':
default_version = '10.13'
return ['macosx_{}_x86_64'.format((macosx_deployment_target or default_version).replace('.', '_'))]
else: