Hi Luis,
I should have thanked you and your colleagues in my initial email for implementing and maintaining CFFI.
It is a great library with a super design - personally I like it very much.
After some thoughts, I agree, that the inlining control is not a fully-baked idea, yet.
I'll split the patch into INLINE and FTYPE parts.
You may ask why we have decided to inline (almost) every of the DEFCFUNs?
CFFI interfaces to C - obviously - and a lot of code in C deals with double-floats and 64-bit integers.
Without the stubs being inline, every call to C and back produces boxed values, impacting the performance.
Regarding the FTYPE declarations - we build our software stacks with different compiler policy settings.
In developer/test builds the declarations act as run-time assertions.
In production builds they produce much better optimized code.
At compile time, we can detect program errors using the type system.