[Cython] Calling conventions on Windows
Lisandro Dalcin
dalcinl at gmail.com
Fri May 8 21:40:50 CEST 2009
I'm having a hard time trying to make mpi4py compatible with Microsoft
MPI. All the MPI calls are annotated with __stdcall, and callbacks
functions (in my case written in Cython) should also be. But other MPI
implementations (MPICH2 and DeinoMPI) does different, they require
__cdecl. I cannot figure out how to solve that without the help of
Cython....
I'm thinking about ADDITIONALLY supporting the following sintax:
cde int "CALL_SPEC" somefunc():
then I would be able to pass -DCALL_SPEC=__xxx or even conditionally
"#define CALL_SPEC __xxx" in some header...
This could have other uses as well, as the string literal could
provide other annotations (like __attribute__ stuff in GCC).
I've already modified the parser and all seems to work. The only thing
left is to make Cython not so strict about the signatures
I mean, if I use a bare string literal for annotating the function,
then the function types
int "ABC" foo()
int "XYZ" bar()
would be treated as equivalent to the unannotated:
inf fun()
What do you think?
BTW, we should add support for __fastcall calling conventions, like this
int __fastcall func()
-
--
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
More information about the Cython-dev
mailing list