[Cython] Dash in the executable's filename

Stefan Behnel stefan_ml at behnel.de
Sun Apr 26 20:16:04 CEST 2015


Robert Bradshaw schrieb am 24.04.2015 um 10:31:
> On Thu, Apr 23, 2015 at 2:22 AM, Anton D. Kachalov wrote:
>> I've found that executable script with dashes in the filename lead to
>> produce wrong cythonized source:
>>
>>    $ touch my-great-script.py
>>    $ cython my-great-script.py --embed
>>    $ fgrep PyInit my-great-script.c
>> PyMODINIT_FUNC PyInit_my-great-script(void); /*proto*/
>> PyMODINIT_FUNC PyInit_my-great-script(void)
>>   __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_my-great-script(void)",
>> 0);
>>           m = PyInit_my-great-script();
>>
>> So, if I don't want to import my final script elsewhere, I'm free to choose
>> any filename for it.
>
> Good point: https://github.com/cython/cython/commit/e0fd2b3c8265ea40084ee9981d8601bc6e11b97e

This change prevents finding the external .pxd file for the module. I
noticed this by pure luck when several of the Cython optimised benchmarks
in Demos/benchmarks/ suddenly dropped substantially in performance.

https://sage.math.washington.edu:8091/hudson/view/bench/job/cython-devel-cybenchmarks-py3k/1400/artifact/bench_chart.html

The build job compiles them as Python-embedded programs.

Stefan



More information about the cython-devel mailing list