[pypy-dev] offtopic, ontopic, ...
Stefan Behnel
stefan_ml at behnel.de
Tue Feb 14 19:13:17 CET 2012
Maciej Fijalkowski, 14.02.2012 19:00:
> On Tue, Feb 14, 2012 at 7:56 PM, Stefan Behnel wrote:
>> Amaury Forgeot d'Arc, 14.02.2012 18:45:
>>> 2012/2/14 Stefan Behnel
>>>> if PyPy can't come up with a fast way to
>>>> interface with C code, it's bound to die.
>>>
>>> But it certainly can! For example PyPy implements the _ssl and pyexpat
>>> modules,
>>> which are interfaces to the openssl and expat libraries.
>>> And it does that by generating C code that calls the corresponding
>>> functions.
>>>
>>> See for example the code for SSLObject.write():
>>> https://bitbucket.org/pypy/pypy/src/default/pypy/module/_ssl/interp_ssl.py#cl-157
>>> it calls the C function SSL_write(), which is declared like this:
>>> https://bitbucket.org/pypy/pypy/src/default/pypy/rlib/ropenssl.py#cl-255
>>> This kind of code is not difficult to write (in this case, it's a simple
>>> translation of
>>> CPython modules) and is close enough to C when you really need it.
>>> For example, it's possible to use macros when they look like function calls,
>>> or embed C snippets.
>>
>> Ok, then I take it that this would be the preferred Python+FFI approach for
>> interfacing, right? ctypes is out of the loop?
>
> Ideally it would be a better FFI than ctypes in my opinion.
Erm, what do you mean by "ideally"? Would you not consider rffi usable or
ready enough for being used for this? Do you mean there should be yet
another FFI?
Simple questions:
Is rffi usable in this context or is it not? Does it require RPython code
to be generated or does it also work with Python code? How do callbacks
work in rffi? Does rffi provide access to PyPy objects? And how so?
I don't know all that much about RPython. Would it work to generate RPython
from Cython? Is there a transformation to map regular Python code down to
RPython? (e.g. by renaming variables, templating, specialising, etc.)
Stefan
More information about the pypy-dev
mailing list