- Add support for Python 3.13.
- Free-threaded CPython builds (i.e.
python3.13t
and the3.13t
ABI) are not currently supported.
- Free-threaded CPython builds (i.e.
- In API mode, when you get a function from a C library by writing
fn = lib.myfunc
, you get an object of a special type for performance
reasons, instead of a<cdata 'C-function-type'>
. Before version 1.17
you could only call such objects. You could write
ffi.addressof(lib, "myfunc")
in order to get a real<cdata>
object,
based on the idea that in these cases in C you'd usually write&myfunc
instead ofmyfunc
. In version 1.17, the special object
lib.myfunc
can now be passed in many places where CFFI expects
a regular<cdata>
object. For example, you can now pass
it as a callback to a C function call, or write it inside a C
structure field of the correct pointer-to-function type, or use
ffi.cast()
orffi.typeof()
on it.
Full Changelog: v1.16.0...v1.17.0