Hi, $ cython -v Cython version 0.9.8 $ cython --convert-range step.pyx $ gcc -O3 -W -Wall -I/usr/include/python2.5/ -I/usr/include/numpy/ -c -o step.o step.c step.c: In function '__pyx_pf_4step_temperature': step.c:608: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_advance': step.c:739: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_assign_speeds': step.c:1068: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_fit_in_the_box': step.c:1336: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_get_f': step.c:1675: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_get_f2': step.c:1794: warning: unused parameter '__pyx_self' step.c: In function '__pyx_pf_4step_calculate_potential': step.c:1941: warning: unused parameter '__pyx_self' step.c: At top level: step.c:2052: warning: missing initializer step.c:2052: warning: (near initialization for '__pyx_string_tab[11].is_identifier') /usr/include/numpy/__multiarray_api.h:959: warning: '_import_array' defined but not used
Now you can discover couple problems above. The last warning:
step.c:2052: warning: missing initializer
step.c:2052: warning: (near initialization for
'__pyx_string_tab[11].is_identifier')
could be fixed by this patch to the step.c file:
$ quilt diff
Index: MD-spheres/step.c
===================================================================
--- MD-spheres.orig/step.c 2008-08-02 19:36:34.680765668 +0200
+++ MD-spheres/step.c 2008-08-02 19:36:50.085854557 +0200
@@ -2049,7 +2049,7 @@
{&__pyx_kp_append, __pyx_k_append, sizeof(__pyx_k_append), 1, 1, 1},
{&__pyx_kp_gauss, __pyx_k_gauss, sizeof(__pyx_k_gauss), 1, 1, 1},
{&__pyx_kp_get_f, __pyx_k_get_f, sizeof(__pyx_k_get_f), 0, 1, 1},
- {0, 0, 0, 0, 0}
+ {0, 0, 0, 0, 0, 0}
};
static struct PyMethodDef __pyx_methods[] = {
So this seems like a bug in Cython. As to the other warnings:
step.c:608: warning: unused parameter '__pyx_self'
If you look into the generated file:
static PyObject *__pyx_pf_4step_temperature(PyObject *__pyx_self,
PyObject *__pyx_args, PyObject *__pyx_kwds) {
Why does Cython generate the "self" argument? This is just a regular
function, not a method. And why isn't the first argument used? Is this
a bug?
Ondrej
step.pyx
Description: Binary data
_______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
