[Python-3000] threading, part 2 --- + a bit of ctypes FFI worry
Lawrence Oluyede
l.oluyede at gmail.com
Sat Aug 12 13:11:47 CEST 2006
On 8/12/06, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Tim Peters wrote:
>
> > It's unclear to me how to write portable ctypes code in the presence
> > of a gazillion integer typedefs and #defines, such as for Py_ssize_t.
>
> A start would be to have constants in the ctypes module
> for Py_ssize_t and other such Python-defined API types.
rctypes and pypy tools are somewhat one step further than ctypes
machinery. In rctypes you can easily do something like:
size_t = ctypes_platform.SimpleType("size_t", c_ulong)
In this way you have platform safe data type to use in your code. The
second argument of SimpleType() is a hint for the tool.
You can also use ConstantInteger() and DefinedCostantInteger() to get
values of costants in headers file like this:
BUFSIZ = ctypes_platform.ConstantInteger("BUFSIZ")
Maybe one day this can be ported to CPython ctypes from the RPython one.
--
Lawrence
http://www.oluyede.org/blog
More information about the Python-3000
mailing list