Comments (11)
@tseaver: you wrote that test, do you have any opinions on this?
My gut feeling is that this exposes a real bug in OLBTree implementation: it can hold 64-bit values on 32-bit Windows, but not on 64-bit Windows? Most illogical!
from btrees.
This test is skipped for 32 bit architecture https://github.com/zopefoundation/BTrees/blob/master/BTrees/tests/test_OLBTree.py#L112
from btrees.
I believe this error is due to a Windows oddity: long
is 32-bit on 64-bit Windows.
from btrees.
Which is maybe the stupidest design choice I can think of: likely due to some crazy notion of preserving ABI with Windows 95. :(
from btrees.
That is weird!
from btrees.
Shall we declare Win64 to be a 32-bit architecture and skip this test too?
from btrees.
What does platform.architecture()
return on Win64? [1]
[1] https://docs.python.org/2/library/platform.html#platform.architecture
Maybe we should be using the workaround from that API reference:
def _skip_on_32_bits(wrapped):
if sys.maxsize == 2**32:
def _dummy(*args):
pass
return _dummy
return test_method
from btrees.
+1 for the sys.maxsize check, but I'm tempted to make it sys.maxsize <= 2**32
-- just in case someone ports Python to a 16-bit machine ;)
from btrees.
LOL
from btrees.
I think I have the culprit: the longlong_check
function in BTrees.BTreeModuleTemplate
was not using PyLong_LongLongOverflow
(as is used in longlong_convert
). See #35 for my attempt at a fix.
from btrees.
Fixed in #36.
from btrees.
Related Issues (20)
- Release 4.7.3 HOT 2
- Pylance has problem resolving imports HOT 5
- Add support to release aarch64 wheels HOT 2
- Python 2: OxBTrees allow types as keys; Python 3 does not
- Can we move to the src/ layout? HOT 3
- Support PURE_PYTHON=0 to require C extensions
- BTree.get() swallows POSKeyError on internal corruption (C only) HOT 2
- Python/C Inconsistency: Detecting classes that just implement `__eq__`
- Python/C Inconsistency: Getting/Setting max_internal_size on the BTree class
- Regression in 4.9: Subclasses can't use @adapter
- fsBTree and fsTreeSet broken in 4.9.0/4.9.1
- fsBTree.difference fails when the second argument is a set HOT 2
- Zope5.2.1 install warnings HOT 3
- Convert to meta/config HOT 2
- Consider using cibuldwheel for building binary wheels. HOT 1
- 4.10.0: sphinx warnings `reference target not found` HOT 3
- 4.10.0: pytest is failing in some units HOT 6
- btrees not installing on m1 computer HOT 2
- Get a random element from a BTree HOT 2
- 'IFBucket' object has no attribute 'byValue' when running with PURE_PYTHON HOT 1
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 btrees.