[Cython] bug in cythonize dependency tracking?

Stefan Behnel stefan_ml at behnel.de
Sun Aug 25 20:08:50 CEST 2013


Felix Salfelder, 25.08.2013 16:52:
> Lets say, i have foo.pyx. and use cythonize() to generate foo.c.
> Calling cythonize() a second time will correctly do nothing, because
> foo.c has been modified after foo.pyx.
> 
> If I now add foo.pxd, cythonize will correctly update foo.c. In general
> foo.c now looks different. But: Deleting foo.pxd and running cythonize
> another time will fail (=do nothing) and leave foo.c in the wrong state.
> 
> This might be a bug, depending on whether cythonize is meant to refresh
> output files consistently.

May not really be a bug, but the current dependency tracking has its
limits, yes.

Another issue is that it doesn't recompile if you pass different compiler
options. That's annoying when you want to try out different directives,
e.g. for benchmarking their impact.

Both would require some additional tracking of the original compilation
environment.

OTOH, there's a "force" option (both in distutils and cythonize()) that you
can use when you know something relevant changed and want to rebuild
everything.

Stefan



More information about the cython-devel mailing list