Code Monkey home page Code Monkey logo

Comments (12)

hynek avatar hynek commented on July 19, 2024

My understanding is that PyPy has no stable ABI and binary wheels are impossible?

C.f. also https://pypi.python.org/pypi/cryptography/1.8.1

cc @dstufft & @reaperhulk for confirmation

from argon2-cffi.

reaperhulk avatar reaperhulk commented on July 19, 2024

Binary wheels aren't impossible but you need a different wheel for every pypy release (e.g. pypy2 5.8 is pp258), which makes them operationally impractical.

from argon2-cffi.

hynek avatar hynek commented on July 19, 2024

Oh OK. Wasn’t there a time when they didn’t even tag the releases? I seem to remember it might have even be me who opened a bug somewhere. :)

from argon2-cffi.

reaperhulk avatar reaperhulk commented on July 19, 2024

I believe the current wheel tags aren't really from the pypy project, but rather the way the pep425tags module (which has a shared history but divergent codebase between pip/wheel) chose to handle it. dstufft probably knows more though.

from argon2-cffi.

fschulze avatar fschulze commented on July 19, 2024

Then I must have totally misunderstood the purpose of cffi. I thought the wheel would just contain the python stuff and a pre-compiled libargon2 and cffi would do the rest.

from argon2-cffi.

dstufft avatar dstufft commented on July 19, 2024

CFFI has an ABI and a API mode, in the ABI mode it functions as you say, but it depends on a stable ABI on the library. In the API mode CFFI will compile a module for each library.

from argon2-cffi.

dstufft avatar dstufft commented on July 19, 2024

And yea, I think PyPy has a stable ABI now and we'll use it, but we need to implement the >= behavior that we implemented for CPython's stable ABI.

from argon2-cffi.

reaperhulk avatar reaperhulk commented on July 19, 2024

@dstufft is there an issue open on pypa/pip for that? If we can nail down the parameters I'd be willing to do a PR updating pep425tags to handle it.

from argon2-cffi.

dstufft avatar dstufft commented on July 19, 2024

Not that I recall, but afaik the current situation is that we produce tags like pp254-pypy_41-win32, (interpreter, ABI, platform) so the ABI portion is correct, but the interpreter is still locking it to a specific version of PyPy. On CPython what we did was have it generate all previous versions of the cpXY tags in the huge list.

This is a bit more complicated for PyPy because (A) I'm not sure what the best way to detect a stable ABI is there, maybe just saying if it returns something that's the ABI and (B) they have a lot more versions to generate so the list can get quite large, we might want to invent a short hand like pp2 and pp3 to indicate PyPy Python v2.x and pp3 for PyPy Python v3.x-- but that would require a distutils-sig post.

from argon2-cffi.

fschulze avatar fschulze commented on July 19, 2024

I just learned that one can use newer pypy(3) versions on Travis. With those it works out of the box.

The naming seems to come from pyenv. The newest ones I was able to get working are these:

  - "pypy-5.4.1"
  - "pypy3.3-5.2-alpha1"

from argon2-cffi.

stonebig avatar stonebig commented on July 19, 2024

Does it work with pypy3.7-v7.3.4-win64 ?

from argon2-cffi.

hynek avatar hynek commented on July 19, 2024

This is fixed by the outsourcing to https://github.com/hynek/argon2-cffi-bindings

We currently carry wheels for pypy3.7 and pypy3.8.

Feel free to try to pip-install argon2-cffi-bindings and report back if it's still broken.

from argon2-cffi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.