Hi Antoine, > I've found that libffi does support this type, but sadly ctypes and cffi > do > > not. Adding to ctypes does not seem to be trivial, since the description > of > > an integer type is limited to a single character ("q" in the case of long > > long). "q" is considered to be a length of 8, whereas what I really want > is > > the integer type "ll" which is correctly considered length of 16. > > Aren't you talking about the struct module? In ctypes, it seems it > would be sufficient to add a "c_int128" type (and/or "c_uint128"). >
Adding a c_int128 type seems somewhat non trivial though. The specific-sized c_intX types are assigned to the named equivalents (c_long etc.). Getting a named type that equates to 128-bit (on OSX at least anyway) is the problem. The : class c_something(_SimpleCData): _type_ = "?" _check_size(c_something) The type "q" seems to relate to "long long" ("q"uad word?) - but that has a size of 8 for me. I don't know: what "something" should be, and what "?" should be. I am guessing stay away from the "long long long" schenanigans and just define c_int128 directly: class c_int128(_SimpleCData): _type_ = "?" .. but there still seems to lack a _type_ that will relate to a 128-bit integer.. OK, it seems that adding a new "?" that relates to 128-bit requires the change to struct module. This seems to be in lib-dynload and is written in C not python? > Can anyone give me some pointers as to why this has not been added to > date, > > and the best line of attack? > > Probably because noone needed it until now? > > We have a comprehensive guide if you want to contribute a patch: > http://docs.python.org/devguide/ > > The first step would be to open an enhancement request on the > issue tracker, the discussion will then move on there: > http://bugs.python.org/ > (if you want to enhance both the ctypes and struct modules, please open > a separate issue for each) > OK, thanks. I had been put off by the "bugs" title since this is an enhancement.. will do. Regards, Fil.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com