Re: [Python-Dev] Python-Dev Digest, Vol 125, Issue 5

2013-12-05 Thread Fil Mackay
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 (quad 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


[Python-Dev] 128 bit integer support

2013-12-04 Thread Fil Mackay
I have been doing some research on getting int128_t supported in Python,
and have hit a snag:

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.

These musings are on OSX.

Can anyone give me some pointers as to why this has not been added to date,
and the best line of attack?

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