The main motivation is to remove an unnecessary dependency of _hpy_universal on cpyext. Also, this brings the code closer to cffi, making future maintenance easier and allowing us to benefit from upstream improvements to the cffi parser.
New cparser features:
- Allow defining integer constants with expressions, not just literals (from upstream cffi)
- Support for complex types (from upstream cffi)
- Struct types can be used directly (as in
struct foo
) without requiring a spurious typedef (liketypedef struct foo _foo_s;
) - Interdependent headers can now be split over several files, see 84e010b35b9d