-
Notifications
You must be signed in to change notification settings - Fork 30
Require CFFI on CPython for pure-Python operation. #107
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
Conversation
|
rebased on master to resolve conflicts with #106 |
icemac
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
| }, | ||
| install_requires=[ | ||
| 'zope.interface', | ||
| "cffi ; platform_python_implementation == 'CPython'", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That requires a "recent" (2 years) setuptools. It's the (preferred, IIRC) replacement for the "empty extra" syntax.
|
Thanks! |
|
@jamadden I know this is 7 years after the fact, but... In #77 you were confident that CFFI is just a lightweight dependency and not problematic. From several years of experience we know this is not the case. It has been a never ending bugbear, especially around the time we are trying to implement support for newer Pythons and CFFI just doesn't keep up and breaks in unexpected ways. This is happening once again for 3.15 and we have to go through the many repositories that depend on My suggestion would be to revert this PR at least partially to remove the dependency. Are there any really important reasons for this change other than the code simplification and test coverage you mentioned in #77? I am volunteering to do this reversion because I am fed up with the constant issues. |
|
I completely agree, CFFI has become much heavier weight than expected, and I have no objections to seeing it made optional or removed entirely, so long as a PURE_PYTHON mode is still functional --- its major advantage was performance in that mode, and, aside from debugging, the main need for performance in PURE_PYTHON mode was PyPy, but my understanding is that PyPy isn't expecting to make releases for Python 3.12+ so its relevance is diminishing. |
|
So I have started working on this by taking the Python implementation The unit tests are a problem, a lot of tests for the ring class itself as well as those for the pickle cache seem to assume internals and APIs that exist on I have created #227 with the current state of work and some example tracebacks. |
Fixes #77