[Python-Dev] Cost-Free Slice into FromString constructors--Long (original) (raw)

Martin Blais blais at furius.ca
Thu May 25 18:20:37 CEST 2006


On 5/25/06, Runar Petursson <runar at runar.net> wrote:

On 5/25/06, Guido van Rossum <guido at python.org> wrote: > > If you really need this for speed, I recommend you make it a custom extension. > > The custom extension is a good idea, and what we do now. But now that the long algorithm is so fast, it would be nice to expose it at least at the C level to use a substring. Any solution--be it buffer based or even an module could have no reuse of the code without an End Pointer. If we added the end pointer to a FromSubstring (or somesuch) function (leaving PyLongFromString alone), it would be easily reused from any parsing module. Assuming it didn't have any negative performance implication.

This discussion about conversion of longs is very much related to the new hot buffer class I'm currently adding in the bytebuf branch, which will directly tackle the issue of I/O on a fixed buffer without intermediate string creation or memory copy. You will be able to pack and unpack structs directly into and out of a fixed memory buffer. In case you're interested, it is a clone of the Java NIO ByteBuffer class for Python. I'm making minor modifications to the socket and struct modules to support I/O using the buffer protocol. The hot buffer class will live in a module and neither of the socket nor struct modules will depend on it.

Following Fredrik's suggestion I will write up a mini-PEP for discussion of this idea and will move the code in the sandbox (and out of a branch).

Additionally, I must say, all that hot water in the blue lagoon this morning was a really hot justficiation for the "hot buffer" name. http://furius.ca/tmp/nfs3/html/2006-05-25.11185801.html

-- Martin Blais



More information about the Python-Dev mailing list