[Python-Dev] Disabling string interning for null and single-char causes segfaults

Guido van Rossum guido at python.org
Mon Mar 4 20:11:54 CET 2013


On Mon, Mar 4, 2013 at 11:06 AM, Amaury Forgeot d'Arc
<amauryfa at gmail.com> wrote:
>
>
> 2013/3/4 Serhiy Storchaka <storchaka at gmail.com>
>>
>> On 01.03.13 17:24, Stefan Bucur wrote:
>>>
>>> Before digging deeper into the issue, I wanted to ask here if there are
>>> any implicit assumptions about string identity and interning throughout
>>> the interpreter implementation. For instance, are two single-char
>>> strings having the same content supposed to be identical objects?
>>
>>
>> I think this is not a bug if the code relies on the fact that an empty
>> string is a singleton. This obviously is an immutable object and there is no
>> public method to create different empty string.
>
>
> Really?
>
>>>> x = u'\xe9'.encode('ascii', 'ignore')
>>>> x == '', x is ''
> (True, False)

Code that relies on this is incorrect (the language doesn't guarantee
interning) but nevertheless given the intention of the implementation,
that behavior of encode() is also a bug.

-- 
--Guido van Rossum (python.org/~guido)


More information about the Python-Dev mailing list