[Python-3000] Google Sprint Ideas (original) (raw)
Alexander Belopolsky alexander.belopolsky at gmail.com
Mon Aug 21 06:43:53 CEST 2006
- Previous message: [Python-3000] Google Sprint Ideas
- Next message: [Python-3000] Google Sprint Ideas
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Aug 21, 2006, at 12:01 AM, Martin v. Löwis wrote:
Alexander Belopolsky schrieb:
For Py3k, I would like to suggest a buffer protocol modelled after iovec structure that is used by the readv system call. On many systems readv is more efficient than repeated calls to read and I think Py3k will benefit from a direct access to that feature. -1
What is this -1 for:
a) buffer protocol in Py3k? b) multisegment buffer protocol? c) readinto that supports multisegment buffers?
Note that in 2.x buffer protocol is multisegment, but readinto only supports single-segment buffers.
It's difficult to use, and I question that there is any benefit.
I often deal with the system (kx.com) that represents matrices as nested lists (1d lists of floats are contiguous). My matrices are stored on disk as C-style 2d arrays. If fileinto would support multisegment buffers, I would be able to update in-memory data from files on disk just with a call to it. Currently I have to do it in a loop.
I believe readv is there primarily for symmetry with writev and hasn't any sensible uses on its own. writev is there so you can add additional headers/trailers around data blocks you received from higher layers. I even doubt that exposing writev in Python would make a measurable performance difference.
I did not suggest to expose anything in Python. AFAIK, the buffer
protocol
is a C API only.
- Previous message: [Python-3000] Google Sprint Ideas
- Next message: [Python-3000] Google Sprint Ideas
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]