Comments (6)
Although, skipping may not be that great an option. It's not just the test that's failing, apparently. The first test failure is actually showing a bug, the C and Python versions are different:
self.assertEqual(hash(c), hash(py))
AssertionError: 2875592705 != -1419374591
from persistent.
#39 does it. All builds green.
from persistent.
@jamadden I'm befuzzled: do you have a clue how to deal with tine Windows ABI-compatible-with-Win95 insanity here?
from persistent.
@tseaver Sorry, I know I wrote this test initially. I don't know what the right fix is, though. And my Windows VM bit the dust, so I don't currently have access to experiment/test there. My only suggestion would be to skip this one on 64-bit Win?
from persistent.
ctypes.sizeof(c_long()) == 4
may be a better way to spell is_32_bit
.
Except, it looks like is the problem that ctypes.c_long
doesn't match what the actual extension module thinks of as long
. (Because if it did match, I don't understand why hash( c) != hash(py)
)
from persistent.
I think I may have found it, and it's a bug in the C code. The C hash function is defined as static long TimeStamp_hash(self)
. But the hashfunc
slot is defined to return a Py_ssize_t
.
On 64-bit windows, Py_ssize_t
is 8 bytes long, where long
is 4 bytes.
I instrumented both the Python and C implementations, and verified that they both return the same on 64-bit windows; but by the time the internal magic of C and/or the interpreter have their way with the return type, -1419374591 becomes 2875592705.
If I fix the return type, all the tests pass on Windows.
I have to verify the signature of hashfunc
on 2.7 (been testing on 3.5) and check a sane platform, but if that holds up, PR coming.
from persistent.
Related Issues (20)
- pypy -m pip install persistent==4.6.0 fails with ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/travis/virtualenv/pypy2.7-7.1.1/include/site' HOT 3
- Segfault in persistent 4.6.0 HOT 4
- Install _compat.h HOT 5
- AssertionError clearing PersistentMap not added to connection.
- 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
- 4.9.0: pytest is failing HOT 1
- 4.9.0: sphinx warnings `reference target not found`
- macOS: symbol not found in flat namespace '_ffi_prep_closure' HOT 2
- The python 3.11 wheel for linux x86 is missing HOT 7
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.