[Python-Dev] Array Enhancements
Tim Peters
tim.one@comcast.net
Fri, 05 Apr 2002 15:58:12 -0500
Sounds like a PEP to me.
Very breifly:
> *** Changing the 'l' and 'L' typecodes to use LONG_LONG.
Please follow the lead of the struct module, which now uses 'q' and 'Q' for
8-byte ints.
> ...
> *** I'd really like it if the array module gave a "hard commitment" to
> the sizes of the elements instead of just sayings "at least n bytes".
It cannot, unless you abandon the notion that it stores native C types.
Even C99 refused to guarantee any "exactly n bytes" types, beyond the
trivial sizeof(char)==1 (which is definitional in C: if you need to store a
char in 128 bits, that's "one byte" to C).
> ...
> *** I really need complex types. And more than the functionality
> provided by Numeric/Numarray, I need complex integer types.
This will meet resistance, as it's a pile of code of no conceivable use to
the vast majority of Python users. That is, "code bloat". Instead the
array type should be subclassable, and extreme special-purpose hair like
"complex integers" should be supplied by extension modules.
> ...
> *** The ability to construct an array object from an existing C
> pointer. We get our memory in all kinds of ways (valloc for page
> aligned DMA transfers, shmem etc...), and it would be nice not to copy
> in and copy out in some cases.
Exploit the buffer interface (but write a PEP so there's a single place to
record all this stuff -- I'm not getting sucked into a massive one-shot
thread about this <wink>).
> ...
> Well if someone authoritative tells me that all of the above is a great
> idea,
At least some of it is at least a good idea <wink>.
> I'll start working on a patch and scratch my plans to create a
> "not in house" xarray module.
Please write a PEP as the first step: a design document will be invaluable
before this is done. I suggest thinking harder about an extensible design
than about piling all conceivable features into it at the start.