[Cython] What now?
Stefan Behnel
stefan_ml at behnel.de
Thu Aug 18 07:32:23 CEST 2011
Stefano, 11.08.2011 16:24:
> now that I've nailed Cython code, I'd like to get into something more funny.
> Currently, I'm working on a set of macros to seamlessy integrate Cython into
> CMake build process (in fact, I love CMake). But, I'd like to work also on
> something more essential, so...
Here's something truly essential that's been on our TODO list for ages, and
it's not even that hard to do, given today's infrastructure (inline
functions in .pxd files, function signature overloading and all that).
http://wiki.cython.org/enhancements/overlaypythonmodules
Basically, the idea is to use a .pxd for existing Python modules
(especially stdlib modules) and to override *some* names in it with fast C
functions.
Approach:
- for each normally "import"-ed module (except for relative imports),
search for a corresponding .pxd file in both the PYTHONPATH and under
Cython/Includes/cpython/
- if found, build a scope for it that falls through to the scope of the
normally imported Python module, but looks up names in the .pxd namespace
first.
For testing, write a cpython/math.pxd that contains replacements for *some*
of the functions and constants in Python's math module.
There is obviously a bit more to it than the short wrap-up above. For
example, if none of the signatures of a function in the .pxd matches, it
would have to fall through to the module as well. That isn't all that easy
to accomplish with just a name lookup. But it's also not strictly required
for an initial implementation, it would just mean that your math.pxd
implementation would have to be provide a complete set of signatures for
the functions it offers. I think the math module is particularly friendly here.
Interested?
Stefan
More information about the cython-devel
mailing list