[Cython] long long and VC6
Kirill Simonov
xi at gamma.dn.ua
Sat Jan 3 00:14:48 CET 2009
Hi Robert,
>>
>> I'm using Cython 0.10.3 to build an extension module and the
>> generated C
>> file does not compile under VC6, which I use to create a Windows
>> binary
>> package for Python 2.3. The culprit is the following expression:
>>
>> PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) :
>> PyLong_FromUnsignedLongLong((sizeof(unsigned long long) >
>> sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
>>
>> in the function __Pyx_GetItemInt. It looks like VC6 does not know
>> about
>> "long long". I suppose Cython should respect HAVE_LONG_LONG and use
>> PY_LONG_LONG macro instead of "long long".
>
> Hmm... I don't have any experience with VC6, but it looks like a bug
> to me. Could you file a bug report on trac? Also, do you know if
> PY_LONG_LONG guaranteed to be 64+ bits?
I can't file a bug report, got Forbidden here:
http://trac.cython.org/cython_trac/newticket
I don't know about PY_LONG_LONG on 64+, but long long is C99, so I
suppose it's a reasonably safe assumption.
Thanks,
Kirill.
More information about the Cython-dev
mailing list