On Tue, Oct 16, 2012 at 12:07 AM, Gael Varoquaux <
[email protected]> wrote:
> Not a problem with me, but I don't see the benefit as in my opinion, it
> should _not_ be run: I don't want to see the repo being flooded with
> changes in Cython-generated files that are due to people running make
> with different Cython versions.
>
Indeed, needless recompilations may occur if pulled files are written by
git at slightly different times (the generated .c file and .pyx file may
have slightly different last-modification time, which would confuse
"make"). The solution is to *not* have a global make task that
automatically recompiles all necessary .pyx file but only file-specific
tasks per file. People would then need to call make for example as follows:
make sklearn/linear_model/sgd_fast.c
What's the advantage over calling cython directly? It handles dependencies
and you don't need to remember whether you need to pass the --cplus option
to Cython or not. In Makefile, something like this should work:
%.c: %.pyx
cython $<
%.cpp: %.pyx
cython --cplus $<
with a few additional file-specific tasks for files that have dependencies.
For example:
sklearn/linear_model/sgd_fast.c: sklearn/linear_model/sgd_fast.pyx
sklearn/utils/seq_dataset.c
cython sklearn/linear_model/sgd_fast.pyx
My 2 cents,
Mathieu
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Scikit-learn-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general