Vinay Sajip added the comment:

> We need more feedback on this suggested flag, especially to stay consistent 
> with CFFI if possible.

Undoubtedly, more feedback would be very helpful. I'm not sure using this flag 
impacts on consistency with CFFI particularly, since it's an internal 
implementation detail. Its main purpose would be for ctypes to raise exceptions 
rather than leading to crashes or undefined behaviour, as we have at the moment.

> Do you know whether CFFI supports passing unions and structs with bitfields 
> in its ABI mode for 64-bit Unix?

I don't believe so, but I'm relatively new to this area. I'm not sure if things 
have changed recently, but an analogous CFFI issue was closed as WONTFIX in 
2015, citing lack of support in libffi:

https://bitbucket.org/cffi/cffi/issues/150/structs-with-bit-fields-as-arguments

Also, the latest CFFI documentation, near the bottom of this section:

https://cffi.readthedocs.io/en/latest/using.html#function-calls

says:

"The limitations are that you cannot pass directly as argument or return type:

* a union (but a pointer to a union is fine);
* a struct which uses bitfields (but a pointer to such a struct is fine);"

The documentation applies these limitations regardless of any specific ABI 
(presumably to provide consistency).

So, I would guess that, as with ctypes, lack of libffi support is the main 
obstacle. I suppose one would have to seriously consider contributing there to 
make much headway here. In this still-open issue from 2013:

https://github.com/libffi/libffi/issues/33

Anthony Green of libffi said he'd welcome a patch, in response to a question by 
Eli Bendersky. Of course, it may be hard for individual contributors to support 
this for the range of architectures that libffi covers.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22273>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to