[Patches] [ python-Patches-424335 ] richcompare for strings
noreply@sourceforge.net
noreply@sourceforge.net
Sat, 02 Jun 2001 03:15:47 -0700
Patches item #424335, was updated on 2001-05-15 12:54
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=424335&group_id=5470
Category: core (C code)
Group: None
>Status: Closed
Resolution: Accepted
Priority: 5
Submitted By: Martin v. Löwis (loewis)
Assigned to: Martin v. Löwis (loewis)
Summary: richcompare for strings
Initial Comment:
This patch implements the tp_richcompare slot for
string objects. It shows a 8% speed-up on selected test
cases.
----------------------------------------------------------------------
>Comment By: Martin v. Löwis (loewis)
Date: 2001-06-02 03:15
Message:
Logged In: YES
user_id=21627
Committed as 2.117 of stringobject.c, 2.95 of
dictobject.c, and 2.27 of stringobject.h.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2001-05-23 21:48
Message:
Logged In: YES
user_id=31435
Oops! Looks like I forgot to assign this back to Martin.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2001-05-22 16:04
Message:
Logged In: YES
user_id=31435
Marked accepted. Looks good!
Suggest
return a->ob_size == b->ob_size &&
*a->ob_sval == *b->ob_sval &&
memcmp(a->ob_sval, b->ob_sval, a->ob_size) == 0;
for the tail of the _PyString_Eq body as compilers should
have an easier time of turning that into the best code for
the platform (especially the weaker compilers do better
optimizing expressions than across branches). Plus it
improves clarity, at least for me.
Unsure why the
case Py_EQ: c = c == 0; break; /* not needed here */
case is there: if it's truly unreacable (and I agree it
isn't), better to assert-fail if it gets there.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2001-05-22 14:31
Message:
Logged In: YES
user_id=31435
Assigned to me.
----------------------------------------------------------------------
Comment By: Martin v. Löwis (loewis)
Date: 2001-05-21 08:33
Message:
Logged In: YES
user_id=21627
The new revision of the patch entirely removes tp_compare
for string, following discussions on python-dev. The only
direct user of string_compare has been changed to use the
new function _PyString_Eq instead.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=424335&group_id=5470