CFFI has been a great success so far in Python. Did you consider using it for interfacing C code?
There are many benefits of CFFI, just to mention few:
- Abstract the Python version (CPython2, CPython3, PyPy).
- Better control over when and why the C compilation occurs, and more standard ways to write setuptools-based setup.py files.
- Keep all the Python-related logic in Python so that you don’t need to write much C code.
Are you asking about our library (TH, THC, etc.) wrappers or about the extensions?
Our FFI extension utils actually depend on cffi. You can check extension-ffi repo for examples.
Thanks for response.
I was asking about wrappers at PyTorch (TH, THC…) - looking at the sources I saw that you are using CPython C API.
With CFFI you could get support for PyPy for free (and probably some other runtimes as well).
we could not use CFFI for that part because we wanted a lot of additional stuff for our core bindings.
For example, multiple dispatch – with CFFI, we have to build a multiple dispatch in python, which we did not want.
Also, a few other things like autogeneration of good errors etc.
See this code pointer for an example: https://github.com/pytorch/pytorch/blob/master/setup.py#L92-L99
A very quick question.
I am trying to write a small cffi extension for pytorch (it will only be a small util function not an entire layer).
My question is that the argument for the c function in the example, use
Does it means it also support