This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [COMMITTED] Bug 18589: Revert strcoll optimization using strdiff.
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>, "Joseph S. Myers" <joseph at codesourcery dot com>, Leonhard Holz <leonhard dot holz at web dot de>
- Date: Thu, 8 Oct 2015 16:56:06 -0400
- Subject: Re: [COMMITTED] Bug 18589: Revert strcoll optimization using strdiff.
- Authentication-results: sourceware.org; auth=none
- References: <5616D304 dot 8010909 at redhat dot com> <5616D717 dot 6070309 at redhat dot com>
On 10/08/2015 04:50 PM, Carlos O'Donell wrote:
> On 10/08/2015 04:33 PM, Carlos O'Donell wrote:
>> The optimization introduced in commit
>> f13c2a8dff2329c6692a80176262ceaaf8a6f74e, causes regressions in
>> sorting for languages that have digraphs that change sort order, like
>> cs_CZ which sorts ch between h and i.
>>
>> My analysis shows the fast-forwarding optimization in STRCOLL advances
>> through a digraph while possibly stopping in the middle which results
>> in a subsequent skipping of the digraph and incorrect sorting. The
>> optimization is incorrect as implemented and because of that I'm
>> removing it for 2.23, and I will also commit this fix for 2.22 where
>> it was originally introduced.
>>
>> This patch reverts the optimization, introduces a new bug-strcoll2.c
>> regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
>> ensures they sort one digraph each correctly. The optimization can't be
>> applied without regressing this test.
>>
>> Checked on x86_64, bug-strcoll2.c fails without this patch and passes
>> after.
>>
>> Checked in for 2.23.
>
> Forgot to add string/Makefile. Checking that in now.
>
> c.
>
Pushed.
commit 233127a79e74c1490cae021877c0213337893dcf
Author: Carlos O'Donell <carlos@systemhalted.org>
Date: Thu Oct 8 16:54:30 2015 -0400
strcoll: Add bug-strcoll2 to testsuite.
Adds bug-strcoll2 to the string tests, along with the
generation of required locales.
Cheers,
Carlos.