[pypy-dev] offtopic, ontopic, ...

Maciej Fijalkowski fijall at gmail.com
Tue Feb 14 19:00:20 CET 2012


On Tue, Feb 14, 2012 at 7:56 PM, Stefan Behnel <stefan_ml at behnel.de> 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?
>
> Stefan

Ideally it would be a better FFI than ctypes in my opinion.

Cheers,
fijal


More information about the pypy-dev mailing list