[Pyrex] Pyrex idioms and optimizations?

Lenard Lindstrom len-l at telus.net
Thu Jul 26 17:54:52 CEST 2007


Chris Mellon wrote:
> On 7/26/07, William Stein <wstein at gmail.com> wrote:
>   
>> On 7/26/07, Alexander Belchenko <bialix at ukr.net> wrote:
>>     
>>> Here the lines that cause problems:
>>>
>>> line 30:
>>>
>>> static inline int __Pyx_PyObject_IsTrue(PyObject* x) {
>>>    if (x == Py_True) return 1;
>>>    else if (x == Py_False) return 0;
>>>    else return PyObject_IsTrue(x);
>>> }
>>>
>>> line 155 use macro
>>> #define unlikely(x) __builtin_expect(!!(x), 0)
>>> and __builtin_expect is somewhat gcc-specific, I guess.
>>>       
>> Thanks for posting this.  I've put a copy in the todo list
>> at http://cython.org.   I wonder, could you post the
>> input .pyx file that you used or email it to me?
>>
>>     
>
> MSVC is a C++ compiler, and only incidently a C compiler, so the
> inline specifications that cython generates are syntax errors there.
> Using a macro for it so it be a noop on MSVC would probably be best.
>   
Is VC 7 C99 compliant? Maybe it needs some command line option set. 
Anyway "inline" is spelled "__inline" (two leading underscores) in VC 6. 
That should still work.

-- 
Lenard Lindstrom
<len-l at telus.net>




More information about the Pyrex mailing list