[Cython] build failure on windows with 0.21b2 windows py27 x64

2014-09-01 Thread Dirk Rothe

Hello Stefan,

the Problem reported by Ian Bell on v0.21b1 seems still to be there. With
v0.21a1 from https://github.com/cython/cython/releases/tag/0.21a1
everything seems to be fine. So maybe it's related to the method call
optimisations, you've mentioned.

I've also tested with windows+py27+x64 and I get the same errors;

configobj.c(42437) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42437) : error C2146: syntax error : missing ')' before
identifier 'ifdef'
configobj.c(42437) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42439) : error C2059: syntax error : 'else'
configobj.c(42449) : error C2059: syntax error : '}'
configobj.c(42463) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42463) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
error: command '"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\BIN\amd64\cl.exe"' failed with exit status 2

I've cythonized the following Code:
http://bpaste.net/show/a10f8b244c2d

with a setup.py like:
-

import sys
  from setuptools import setup
  from setuptools.extension import Extension

  from Cython.Distutils import build_ext

extensions = [Extension("configobj", ["configobj.py"])]
setup_info = dict(ext_modules=extensions, cmdclass={'build_ext':
build_ext})
sys.argv.extend(["build_ext", "-i"])
setup(**setup_info)


--dirk
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] build failure on windows with 0.21b2 windows py27 x64

2014-09-01 Thread Dirk Rothe
On Mon, 01 Sep 2014 12:14:58 +0200, Stefan Behnel   
wrote:



Dirk Rothe schrieb am 01.09.2014 um 09:55:
the Problem reported by Ian Bell on v0.21b1 seems still to be there.  
With

v0.21a1 from https://github.com/cython/cython/releases/tag/0.21a1
everything seems to be fine. So maybe it's related to the method call
optimisations, you've mentioned.

I've also tested with windows+py27+x64 and I get the same errors;

configobj.c(42437) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42437) : error C2146: syntax error : missing ')' before
identifier 'ifdef'
configobj.c(42437) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42439) : error C2059: syntax error : 'else'
configobj.c(42449) : error C2059: syntax error : '}'
configobj.c(42463) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
configobj.c(42463) : error C2121: '#' : invalid character : possibly the
result of a macro expansion
error: command '"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\BIN\amd64\cl.exe"' failed with exit status 2


Could you copy lines 42430-42463 (i.e. the error lines plus a bit of
preceding context) from the generated C file and send them to me? (Please
make sure it's clear which lines are the offending ones.)


Here we go, I have annotated the start/end with line numbers:

#if CYTHON_COMPILING_IN_CPYTHON ## Line 42431
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func,  
PyObject *arg) {

if (likely(PyCFunction_Check(func)
#ifdef __Pyx_CyFunction_USED
|| PyObject_TypeCheck(func, __pyx_CyFunctionType)
#endif
) && likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
return __Pyx_PyObject_CallMethO(func, arg);
} else {
PyObject *result;
PyObject *args = PyTuple_New(1);
if (unlikely(!args)) return NULL;
Py_INCREF(arg);
PyTuple_SET_ITEM(args, 0, arg);
result = __Pyx_PyObject_Call(func, args, NULL);
Py_DECREF(args);
return result;
}
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func,  
PyObject *arg) {

PyObject* args = PyTuple_Pack(1, arg);
return (likely(args)) ? __Pyx_PyObject_Call(func, args, NULL) : NULL;
}
#endif ## Line 42455

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
if (likely(PyCFunction_Check(func)
#ifdef __Pyx_CyFunction_USED
   || PyObject_TypeCheck(func, __pyx_CyFunctionType)
#endif
) && likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
return __Pyx_PyObject_CallMethO(func, NULL);
} else {
return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
}
#endif ## Line 42469

--dirkse
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] build failure on windows with 0.21b2 windows py27 x64

2014-09-06 Thread Dirk Rothe
On Fri, 05 Sep 2014 20:47:47 +0200, Stefan Behnel   
wrote:



Dirk Rothe schrieb am 01.09.2014 um 12:25:

I've also tested with windows+py27+x64 and I get the same errors;

configobj.c(42437) : error C2121: '#' : invalid character : possibly  
the

result of a macro expansion
configobj.c(42437) : error C2146: syntax error : missing ')' before
identifier 'ifdef'
configobj.c(42437) : error C2121: '#' : invalid character : possibly  
the

result of a macro expansion
configobj.c(42439) : error C2059: syntax error : 'else'
configobj.c(42449) : error C2059: syntax error : '}'
configobj.c(42463) : error C2121: '#' : invalid character : possibly  
the

result of a macro expansion
configobj.c(42463) : error C2121: '#' : invalid character : possibly  
the

result of a macro expansion
error: command '"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\BIN\amd64\cl.exe"' failed with exit status 2


Here we go, I have annotated the start/end with line numbers:

#if CYTHON_COMPILING_IN_CPYTHON ## Line 42431
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func,
PyObject *arg) {
if (likely(PyCFunction_Check(func)
#ifdef __Pyx_CyFunction_USED
|| PyObject_TypeCheck(func, __pyx_CyFunctionType)
#endif
) && likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
return __Pyx_PyObject_CallMethO(func, arg);
} else {
PyObject *result;
PyObject *args = PyTuple_New(1);
if (unlikely(!args)) return NULL;
[...]


Thanks. My guess is that the macro nesting is a bit too heavy for MSVC
here. I pushed a change to the master branch that simplifies it. Could  
you

give it another try?

https://github.com/cython/cython/commit/2a1f74aac867fee81e2ddf073f16519f3f454bac


Thanks Stefan! The latest Trunk works fine for me now.

--dirk
___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel


Re: [Cython] Publish Windows wheels to PyPI

2015-09-28 Thread Dirk Rothe
On Sun, 27 Sep 2015 21:30:21 +0200, Mirth Hickford  
 wrote:



Hi Cython. Please consider publishing wheels for Windows to PyPI [1].
Wheels [2] are a package format that installs more reliably than source
distributions, especially on Windows.

Meanwhile a workaround is to download wheels from Christoph Gohlke's site
[3] a godsend.


Yeah, he's awesome. Excellent work for at least 10 years now. Thanks!

Cython is awesome too, btw ;)


-M

[1] https://pypi.python.org/pypi/Cython/
[2] http://pythonwheels.com/
[3] http://www.lfd.uci.edu/~gohlke/pythonlibs/#cython

___
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel