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: Fri, 9 Oct 2015 16:39:38 -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> <5616D866 dot 6000006 at redhat dot com>
On 10/08/2015 04:56 PM, Carlos O'Donell wrote:
> 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.
Pushed.
commit facdd9ea29ab94aac2b188ec3cc41f8733d769e0
Author: Carlos O'Donell <carlos@systemhalted.org>
Date: Fri Oct 9 16:35:53 2015 -0400
Fix typo in bug-strcoll2 (Bug 18589)
Fix the copyright year and remove contributed by in the
bug-strcoll2 test. In addition add the correct dependency
on $(gen-locales) to ensure all the test locales are generated.
diff --git a/string/Makefile b/string/Makefile
index 616fdec..ebe9354 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -85,5 +85,7 @@ $(objpfx)test-strcasecmp.out: $(gen-locales)
$(objpfx)test-strncasecmp.out: $(gen-locales)
$(objpfx)tst-strxfrm.out: $(gen-locales)
$(objpfx)tst-strxfrm2.out: $(gen-locales)
+# bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1.
+$(objpfx)bug-strcoll2.out: $(gen-locales)
endif
diff --git a/string/bug-strcoll2.c b/string/bug-strcoll2.c
index 26cc873..72a9ff2 100644
--- a/string/bug-strcoll2.c
+++ b/string/bug-strcoll2.c
@@ -1,7 +1,6 @@
/* Bug 18589: sort-test.sh fails at random.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
---
Cheers,
Carlos.