[Cython] Compiler crash in AnalyseDeclarationsTransform with binding=True

Matěj Laitl matej at laitl.cz
Tue Jan 22 10:29:06 CET 2013


On 21. 1. 2013 Stefan Behnel wrote:
> > pybayes/filters.pxd:22:29: Compiler crash in AnalyseDeclarationsTransform
> > [...]
> > AssertionError: Cannot insert list here: body in 
> > <Cython.Compiler.Nodes.PropertyNode object at 0x3136550>
> 
> I'm puzzled how this comes to be triggered by the "binding" directive.
> Anyway, just as a stab in the dark, does the attached patch fix it for you?

With the patch filters.py compiles to .c, but perhaps incorrect code is 
generated, because gcc (4.6.3) then fails:

x86_64-pc-linux-gnu-gcc -pthread -fPIC -I/usr/lib64/python2.7/site-
packages/numpy/core/include -I/usr/include/atlas -I/usr/include/atlas -
I/usr/include/atlas -I/usr/include/python2.7 -c build/temp.linux-
x86_64-2.7/pyrex/pybayes/filters.c -o build/temp.linux-
x86_64-2.7/build/temp.linux-x86_64-2.7/pyrex/pybayes/filters.o -O2
build/temp.linux-x86_64-2.7/pyrex/pybayes/filters.c:8538:64: error: expected 
expression before ‘static’
build/temp.linux-x86_64-2.7/pyrex/pybayes/filters.c:9357:68: error: expected 
expression before ‘static’

This is kinda strange, see the lines of filters.c:
8525: static PyObject 
*__pyx_pf_7pybayes_7filters_26MarginalizedParticleFilter_4memp___get__(struct 
__pyx_obj_7pybayes_7filters_MarginalizedParticleFilter *__pyx_v_self) {
(...)
8535:  __pyx_L0:;
8536:  __Pyx_XGIVEREF(__pyx_r);
8537:  __Pyx_RefNannyFinishContext();
8538:  return __pyx_r;
8539:}
8540:
8541:/* Python wrapper */

The other occasion is similar, see whole filters.c at [1]. But perhaps this is 
an unrelated bug triggered by binding=True?

[1] http://www.laitl.cz/soubory/filters.c

[sorry for delays, I've first sent with filters.c attached, but the message got 
rejected due to size]

	Matěj


More information about the cython-devel mailing list