summaryrefslogtreecommitdiff
path: root/README.md
blob: fe22df0eb9c5d3626e486df26e4f6084caece328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
ffi
===

Foreign Function Interface for Python.


Initial motivation
------------------

http://mail.python.org/pipermail/pypy-dev/2012-May/009915.html


Current status
--------------

* works as a ctypes replacement
* can use internally either ctypes or a C extension module


Next steps
----------

the verify() step, which should handle:
 * completing "...;" structs
 * checking the other structs, and the arguments to functions, using the real C compiler
 * simple "#define FOO value" macros
 * macros of the kind "#define funcname otherfuncname"
 * more complicated macros "#define foo(a, b, c) ..."
 * checking and correcting the value of the enum {} declarations
 * probably also fixing the array lengths, e.g. declared as a field "int foo[...];"

generating C extensions:
 * this is needed anyway to call macros
 * faster, libffi-free way to call C code
 * partial blockers: callbacks (probably still use libffi)

_ffi backend for PyPy