This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Dennis Sweeney
Recipients Dennis Sweeney, Zeturic, ammar2, corona10, gregory.p.smith, gvanrossum, josh.r, pmpp, serhiy.storchaka, tim.peters, vstinner
Date 2020-10-23.00:30:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1603413001.04.0.808430948231.issue41972@roundup.psfhosted.org>
In-reply-to
Content
I attached a new PR, with a lot of the same ideas.

The major differences between this and the last PR:

* The first character to be checked at each alignment is the first character of the right half, rather than the last.

* If that first character does not match, then the character immediately following the window is looked up in the table, and we jump forward accordingly (Sunday's trick).

I'll post some more benchmarks soon, but preliminarily, it seems like this swapping of the character to first be matched is better for some needles, worse for others, which makes sense. Stringbench.py for example has some needles that have a unique character at the end, which prefers the status quo and old PR, but other strings work better for this PR.
History
Date User Action Args
2020-10-23 00:30:01Dennis Sweeneysetrecipients: + Dennis Sweeney, gvanrossum, tim.peters, gregory.p.smith, vstinner, pmpp, serhiy.storchaka, josh.r, ammar2, corona10, Zeturic
2020-10-23 00:30:01Dennis Sweeneysetmessageid: <1603413001.04.0.808430948231.issue41972@roundup.psfhosted.org>
2020-10-23 00:30:01Dennis Sweeneylinkissue41972 messages
2020-10-23 00:30:00Dennis Sweeneycreate