[Cython] Interest in contributing to the project

Stefan Behnel stefan_ml at behnel.de
Sat Apr 2 08:50:38 CEST 2011


Hi Arthur,

Arthur de Souza Ribeiro, 02.04.2011 03:52:
> HI Stefan, thank you very much for responding my e-mail to cython's list.
>
> About the proposal, I'd be very happy in helping the cython community doing
> the task 'rewrite modules in CPython's standard library in Cython that are
> currently written in C'. I didn't think about any special modules, but I'm
> going to start doing it, in my opinion, both modules you've mentioned are
> really good examples.

Cool.


> I think this project could be very important, but, I don't know CPython very
> well, are there any examples you could suggest me to understand CPython
> better? I think I could do a good effort to understand this as fast as I can
> and we discuss more the proposal.

The nice thing about this task is that you don't have to be an expert of 
CPython's C-API, nor a core developer of Cython. You will have to read the 
C code of the modules, and you will have to look up and understand what the 
C-API calls in the code are doing, but most of them have rather 
understandable names.

However, you will have to program efficiently in Cython, and write fast 
code in it. Writing Cython code that is easy to read and maintain, and at 
the same time fast enough to replace the existing manually tuned C code is 
the challenging bit here.

So my advice would be to get going in Cython programming (take a look 
through our tutorials), and to start reading the source code of a couple of 
CPython stdlib modules to get an idea of what you need to translate.

It would certainly help your application if you could reimplement one 
reasonably sized and self-contained function in a stdlib C module of your 
choice, and present that on the cython-users mailing list to get feedback. 
A couple of benchmark or profiling results comparing it to the original 
CPython function would round this up very nicely.

Stefan


More information about the cython-devel mailing list