[pypy-issue] [issue1252] Limnoria can't run with pypy

Amaury Forgeot d Arc tracker at bugs.pypy.org
Wed Sep 5 02:05:16 CEST 2012

Amaury Forgeot d Arc <amauryfa at gmail.com> added the comment:

See minimal test case below.  It seems that re.sub() returns the input string when no match was found; this optimization 
should not be done when a string subclass is given.

PyPy should be fixed, but this could be considered an implementation detail as well.
The class IrcString should be more robust and ensure that x.lowered is not a IrcString! otherwise the __hash__ method 
enters a nasty recursion.
   x.lowered = str(toLower(x))

import re
class MyString(str):
s1 = MyString('zz')
s2 = re.compile('aa').sub('bb', s1)
print s1 is s2
# True in Pypy which returns a str subclass;
# False for CPython which creates an exact str instance.

nosy: +afa
status: unread -> chatting

PyPy bug tracker <tracker at bugs.pypy.org>

More information about the pypy-issue mailing list