Roadmap
Cython backend (beta version)
Less bugs and more Cython features… Note that unfortunately we are limited by Cython bugs!
(done) Header also for Pythran (
.pythran)(done) Refactore backends “for method”
(done) Recompile if header changed
(done) test_run.py: also check signature files
(done) Fused types rather than more than one signature for
(done) boost functions
(done) boost methods
(done) blocks
(done) jit functions
(done) jit methods
(done) BackendJITCython
(done) Check/fix
(done) boost methods
(done) blocks
(done) jit functions
(done) jit methods
(done) Cython decorators (boundscheck, wraparound, cdivision, nonecheck)
(done) void type
(done) Correct use of fused types (only 1 set of annotations supported)
Special function definitions
(done) inline
(done) return type
nogil
better fused types
nogil context manager
casting
locals annotations for
boost methods
blocks
jit functions
jit methods
“exterior” functions + understand the tests
Better Numba backend
numba.jit(not onlynumba.njit)fastmathargument
transonic.dataclass decorator
It would allow one to use numba.jitclass and Cython extension type.
A interesting goal would be to rewrite pygbm (written in Numba) with Transonic. Note that the Cython translation is here in scikit-learn. Good Rosetta stone!
Backends as Transonic extensions
We can try that with pyccel.
Alternative syntax for blocks
See issue #6
Alternative implementations for specified backends
Which API?
Parallelism
We can already use OpenMP with Transonic-Pythran. But OpenMP pragmas are not understood
by the other backends. Numba and Cython use different notations (with prange):