Now my issue is as follows. (I CCed the cython-users list if this question is more appropriate there.)
I have a simple file, int.pyx: from libc.stdint cimport * print long(UINT8_MAX) print long(UINT16_MAX) print long(UINT32_MAX) print long(UINT64_MAX) with the usual setup.py stuff. Compiling and running: $ python setup.py build_ext --inplace ... int.c:566:3: warning: overflow in implicit constant conversion [-Woverflow] ... $ python -c 'import int' 255 65535 -1 -1 So obviously there are overflows here. Checking int.c, I see: /* "int.pyx":2 * from libc.stdint cimport * * print long(UINT8_MAX) # <<<<<<<<<<<<<< * print long(UINT16_MAX) * print long(UINT32_MAX) */ __pyx_t_1 = PyInt_FromLong(UINT8_MAX); and so on... PyInt_FromLong is used for all these constants, regardless of signedness or width, so any argument larger than LONG_MAX overflows, *before* being converted to the arbitrary-size Python integer type. I don't know if this is a bug, or if I'm overlooking something. Is there a way for me to use these constants with Python's arbitrary-size integers? Thanks, Mansour _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel