[Python-Dev] strop vs. string

Tim Peters tim.one@home.com
Sun, 27 May 2001 21:42:30 -0400


[MAL]
> I guess there are three ways to "solve" this:
>
> a) mutable types don't implement the getreadbuf interface

Of the few types that implement it today, that would leave only strings
(8-bit and Unicode).  Too much machinery just for that.  Besides, I once
posted an example to c.l.py showing how to use regexps to search mmap'ed
files, so *that* must continue to work forever <wink>.

> b) the getreadbuf interface is complemented with a callback
>    interface, so the the buffer object can be notified of
>    the change

I like this best, although there's no bound on the number of buffers that
may need to be notified in case of change (i.e., the object would need to
maintain a list of buffers to be notified).

> c) calling getreadbuf on a mutable object causes this object
>    to become immutable

Even easier, core dump as soon as getreadbuf is called <wink>.

[Greg Ewing]
> I think it would be safe if:
>
> 1) it kept a reference to the underlying object, and

That much it already does.

> 2) it re-fetched the pointer and length info each time it was
>    needed, using the underlying object's buffer interface.

If after

    b = buffer(some_object)

b.__getitem__ needed to refetch the info between

    b[i]
and
    b[i+1]

I expect it would be so slow even Greg wouldn't want it anymore.