This is a list of some of the stuff that we'd may like to see in Cython, and many make good starting points for Google Summer of Code projects.
CEPs are isolated ideas and concepts. They do not need to be full specifications; once it is believed that a concept is understood in enough detail that it won't be refactored into other pieces it is a good candidate for a CEP. However as CEPs are implemented they should develop towards a higher level of specificity (and eventually serve as documentation of the feature). Collections of more general enhancement ideas, especially if they are not specific enough to determine what "done" means, should usually be linked under Exploring new concepts.
CEP 1xx - User experience
Improvement for specific usecases or libraries. These are bigger end-goals driving the development priorities and depends on other CEPs for the details.
- CEP 101 - Full Python 2.x syntax support (this is a 1.0 goal)
CEP 2xx - Frontend
Build system, command-line interface, library interface
CEP 201 - Distutils Preprocessing
- CEP 202 - Plugin framework
CEP 3xx - Pure Python support
Supporting more features for pure Python code (without Cython syntax extensions)
CEP 301 - from blah import * (Done)
CEP 302 - with statements (Done)
CEP 303 - closures (Done)
CEP 304 - decorators (Done)
CEP 4xx - Support for wrapping existing C/C++/Fortran/... libraries
Improved support for features in C/C++/Fortran code that is wrapped, often through extensions in the Cython declaration language.
CEP 5xx - Cython language features
Development of Cython as a language that is not covered by the 3xx or 4xx series.
CEP 506 - Parametrized types (Rejected in this form)
CEP 516 - Division Semantics (Done)
CEP 517 - Array type (Not voted for yet)
CEP 518 - SIMD operations on Cython arrays (Not voted for yet)
CEP 522 - Fused types (Implementation wanted)
CEP 523 - Native dispatch through Python wrappers around C functions (Implementation wanted)
CEP 524 - prange: Parallel loops (mostly done)
CEP 6xx - Optimizations
Generating smarter output C code.
CEP 8xx - Backends
Different backends: C, C++ and others
CEP 9xx - Cython internals
Changes in the internal Cython implementation.
CEP 10xx - Cross-project specifications
Exploring new concepts
- OpenCL support (since cython compiles into c and OpenCL is a subset of c99)
- Supporting C-level conditional compilation (e.g. emitting #ifdef)
- Bound C methods and functions (e.g. supporting cdef closures). This could be done by via a struct holding "self" and the function pointer. The issues are coercion to/from unbound and raw C methods.