Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build wheels for PyPy #75

Closed
wants to merge 5 commits into from
Closed

Build wheels for PyPy #75

wants to merge 5 commits into from

Conversation

pganssle
Copy link
Owner

I had originally added this to #74, but then I found out that packaging deliberately removed support for interpreter-specific abi-agnostic wheels, and in pip >= 20, pip adopted packaging.tags, meaning the latest version of pip won't pick up these wheels in the first place.

I've opened pypa/packaging#311 to try to get these supported again, but the outcome is still uncertain, so I've split this off into its own separate PR so as not to block the release of a version of the backport that supports PyPy on something as simple as uploading wheels with the right file name — since the PyPy version is distinguished by not using the C extension, being unable to deliver wheels for it is not as bad as it could be.

pganssle added 5 commits May 28, 2020 22:42
This skips building the C extension and only uses the pure Python
version when built on PyPy. This is probably the right thing to do on
PyPy anyway, since PyPy needs to use a compatibility layer for the C
extension, and that slows things down considerably.

Running the benchmark suite, the C extension is consistently 10x slower
than the pure Python implementation on PyPy.
This skips building the C extension and only uses the pure Python
version when built on PyPy. This is probably the right thing to do on
PyPy anyway, since PyPy needs to use a compatibility layer for the C
extension, and that slows things down considerably.

Running the benchmark suite, the C extension is consistently 10x slower
than the pure Python implementation on PyPy.
This is a tricky situation, because the PyPy wheel is special — it does
not contain the C extension. We do not want this being picked up by
anything except pypy.

Unfortunately, after pip version 19.3.1 (and until at least version
20.1.1), pip will not pick up the `pp3-none-any.whl` tag (see
https://github.com/pypa/pip/issues/8347 ), so pypy users with a recent
version of pip will get the sdist (which is our only alternative really
anyway). We'll ship these wheels anyway, since this seems to be an issue
with pip, and this is indeed the proper tag for PyPy 3 wheels.
@pganssle
Copy link
Owner Author

I don't think this is going to happen.

@pganssle pganssle closed this Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant