Comments (5)
Full disclosure: I'm using the Ring implementation in RelStorage (I know it's documented as not for external use---I wrote those docs :) and the CFFIRing is much faster than the DequeRing on CPython. It would be nice to piggyback on the existing Appveyor setup and such of persistent so that I don't have to set all that up for RelStorage and can keep uploading just a single universal wheel.
from persistent.
Importing the module-to-be-installed in setup.py
feels icky to me. Can we use something from @dstufft's CFFI blog post?
Also, for Windows PyPy users, why would they want the CFFI ring, if the deque version is only faster for CPython?
from persistent.
On Aug 10, 2016, at 12:27, Tres Seaver [email protected] wrote:
Importing the module-to-be-installed in setup.py feels icky to me. Can we use something from @dstufft's CFFI blog post?
I agree it's ugly. But it's the only way to work with older CFFI versions, like the version shipped with PyPy on Travis. To use the cffi_modules
keyword you need at least PyPy 2.6 IIRC. I went through the same pain for gevent.
from persistent.
On Aug 10, 2016, at 12:27, Tres Seaver [email protected] wrote:
Also, for Windows PyPy users, why would they want the CFFI ring, if the deque version is only faster for CPython?
The CFFI ring is faster than the deque ring everywhere, as far as I can remember. But currently PyPy windows users (or CPython users that define PURE_PYTHON, for that matter) will get the deque ring unless they're set up to compile extension modules.
But that only matters for users of the pure-python persistent implementation, because the C implementation includes its own ring (that the CFFI implementation uses).
from persistent.
In zodb/relstorage#128, I realized it was possible to support both the old and new style of CFFI building at the same time. And then, when I needed features that PyPy 2.5 doesn't support, I realized that (a) nobody is using PyPy 2.5, given the current version is 5.4 and much faster; and (b) it's pretty trivial and doesn't hurt Travis test times to install an updated PyPy on Travis.
So we could do that and it might be a good thing.
But my own need for this has gone away. See #45.
from persistent.
Related Issues (20)
- Two potential reference leaks
- 6.4.6 test test_inst_does_not_conform_to_IExtendedPickleCache fails with latest zope.interface
- RTD out of date, needs new webhook HOT 2
- PyPy: Sweeping the cache may need to call gc.collect()
- AttributeError: '_WeakValueDictionary' object has no attribute '_addr_to_oid' HOT 1
- Issue in macOS binary wheel for 4.6.4/3.8: Illegal Instruction (my fault, but needs a change to prevent in the future) HOT 4
- C/Python difference: Setting __class__ activates in C, doesn't activate in Python HOT 4
- Move Mac and manylinux builds to GitHub Actions HOT 3
- Move to the src/ layout? HOT 2
- CI breakage: docs builds fail on GHA (yes, it's repoze.sphinx.autointerface)
- RTD should publish the changelog
- Building a wheel fails on GHA for PyPy2 on Windows HOT 1
- 4.9.0: pytest is failing HOT 1
- 4.9.0: sphinx warnings `reference target not found` HOT 18
- macOS: symbol not found in flat namespace '_ffi_prep_closure' HOT 2
- The python 3.11 wheel for linux x86 is missing HOT 7
- test_docs.py in wheel fails HOT 5
- Not able to compile under Python 3.13a5 HOT 1
- 'tox -e coverage' is failing HOT 1
- Who uses `persistent.cPersistence.simple_new`? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from persistent.