Greg Ewing wrote:
Travis Oliphant wrote:
The 'bit' type re-intprets the size information to be in units of "bits" and so implies a "bit-field" instead of another data-format.
Hmmm, okay, but now you've got another orthogonality problem, because you can't distinguish between e.g. a 5-bit signed int field and a 5-bit unsigned int field.
It might be better not to consider "bit" to be a type at all, and come up with another way of indicating that the size is in bits. Perhaps
'i4' # 4-byte signed int 'i4b' # 4-bit signed int 'u4' # 4-byte unsigned int 'u4b' # 4-bit unsigned int
I like this. Very nice. I think that's the right way to look at it.
(Next we can have an argument about whether bit fields should be packed MSB-to-LSB or vice versa...:-)
I guess we need another flag / attribute to indicate that.
The other thing that needs to be discussed at some point may be a way to indicate the floating-point format. I've basically punted on this and just meant 'f' to mean "platform float"
Thus, you can't use the data-type object to pass information between two platforms that don't share a common floating point representation.