
Martin v. Löwis wrote:
Travis E. Oliphant schrieb:
- Should primitive type codes be characters or integers (from an enum) at
C level?
- I prefer integers
- Should size be expressed in bits or bytes?
- I prefer bits
So, you want an integer enum for the "kind" and an integer for the bitsize? That's fine with me.
One thing I just remembered. We have T_UBYTE and T_BYTE, etc. defined in structmember.h already. Should we just re-use those #defines while adding to them to make an easy to use interface for primitive types?
Notice that those type codes imply sizes, namely the platform sizes (where "platform" always means "what the C compiler does"). So if you want to have platform-independent codes as well, you shouldn't use the T_ codes.
In NumPy we've found it convenient to use both. Basically, we've set up a header file that "does the translation" using #defines and typedefs to create things like (on a 32-bit platform)
typedef npy_int32 int #define NPY_INT32 NPY_INT
So, that either the T_code-like enum or the bit-width can be used interchangable.
Typically people want to specify bit-widths (and see their data-types in bit-widths) but in C-code that implements something you need to use one of the platform integers.
I don't know if we really need to bring all of that over.
-Travis