[Python-ideas] Copy-on-write when forking a python process

Antoine Pitrou solipsis at pitrou.net
Wed Apr 13 13:58:15 CEST 2011


On Tue, 12 Apr 2011 23:40:02 -0400
Terry Reedy <tjreedy at udel.edu> wrote:
> On 4/12/2011 9:32 PM, Mike Graham wrote:
> 
> > Python interns some strings and small ints. The intern builtin ensures
> 
> intern is deprecated in 2.7 and gone in 3.x.

It's now called sys.intern().

> > a string is in the former cache and isn't applicable for other
> > objects; Python automatically interns strings that look like
> > identifiers and you should never use the intern function yourself.
> >
> > These optimizations have nothing to do with reference counting and
> > could be applicable under other garbage collection schemes. Reference
> > counting doesn't mean that interned objects can never be freed; are
> > you familiar with the idea of weak references?
> 
> "Changed in version 2.3: Interned strings are not immortal (like they 
> used to be in Python 2.2 and before); you must keep a reference to the 
> return value of intern() around to benefit from it."

That's a rather strange sentence, because interned strings *are*
immortal (until the interpreter is shutdown).

Regards

Antoine.





More information about the Python-ideas mailing list