On 14 February 2012 15:25, Martijn Faassen <faas...@startifact.com> wrote: > On Tue, Feb 14, 2012 at 4:19 PM, Armin Rigo <ar...@tunes.org> wrote: >> Hi Martijn, >> >> On Tue, Feb 14, 2012 at 14:47, Martijn Faassen <faas...@startifact.com> >> wrote: >>> But Cython-based code does talk to C APIs, so there is a problem. >>> Python code in PyPy needs to be able to interface with C APIs first in >>> order to generate the right stuff from Cython. >> >> That's not necessarily hard. I believe that Cython code like this: >> >> PyObject *x = PyDict_GetItem(y, key) >> >> can correspond "faithfully" to Python code like that --- if we assume >> that 'y' contains really a dict: >> >> x = y[key] >> >> I don't know to what extend the whole C API can be mapped back to >> Python, but certainly the most common functions can. > > Yes, that's the Python C API, but I was talking about other C APIs. > Take lxml, which uses the libxml2 APIs. > > There is no way to map that to Python unless you use something like > ctypes (but ctypes is not considered to be right for this purpose).
Why is ctypes not right? Cython could actually generate a C function with a known interface, that proxies the actual C function. That code would be compiled by the C compiler, and any C API changes would prevent the module from compiling. It would also take care of any promotions etc on the C level. > Regards, > > Martijn > _______________________________________________ > pypy-dev mailing list > pypy-dev@python.org > http://mail.python.org/mailman/listinfo/pypy-dev _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev