--- Comment #4 from paolo dot carlini at oracle dot com 2008-12-05 08:24
---
Are you using the same glibc on x86_64 and ia64? The two failing testcases
(cons/7.cc and members/char/2.cc, the other are implied) are essentially the
same: something is different on that ia64 machine about
--- Comment #5 from jakub at gcc dot gnu dot org 2008-12-05 08:36 ---
The only thing I remember was fr_FR locale changing some stuff and Fedora
backing out that change as it was done upstream too late in the cycle to get
feedback from the French community.
--
--- Comment #6 from paolo dot carlini at oracle dot com 2008-12-05 08:47
---
Yes, I'm not sure is the same issue. Anyway, the problem can only be in this
idea:
_M_data-_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
--- Comment #7 from paolo dot carlini at oracle dot com 2008-12-05 08:50
---
By the way, yes the fr_FR locale is heavily used in those tests...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38411
--- Comment #8 from paolo dot carlini at oracle dot com 2008-12-05 08:55
---
I suspect in the localedata of fr_FR, the thousands separator may have changed
in some glibc from ' ' (0x20) to '\0'. Jakub can you confirm that?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38411
--- Comment #9 from jakub at gcc dot gnu dot org 2008-12-05 09:10 ---
Forcing , thousands separator when none should be used is very weird. Does
C++ standard mandate that behavior? means thousands shouldn't be separated
by any separator. In most cases such locales also have grouping
--- Comment #10 from jakub at gcc dot gnu dot org 2008-12-05 09:13 ---
To reply to #c8, it changed the other way around, from to U0020 in April
2008. But as I said, Fedora 9, which shipped glibc 2.9, was backing out these
changes (Fedora 10 has them already).
--
--- Comment #11 from paolo dot carlini at oracle dot com 2008-12-05 09:16
---
(In reply to comment #9)
Forcing , thousands separator when none should be used is very weird.
Is the same C locale has. We only want consistency, see 38368.
Does
C++ standard mandate that behavior?
--- Comment #12 from paolo dot carlini at oracle dot com 2008-12-05 09:17
---
(In reply to comment #10)
To reply to #c8, it changed the other way around, from to U0020 in
April
2008. But as I said, Fedora 9, which shipped glibc 2.9, was backing out these
changes (Fedora 10 has
--- Comment #13 from jakub at gcc dot gnu dot org 2008-12-05 09:38 ---
I see you already disable grouping if it is empty, good.
If _M_thousands_sep must be a single _CharT, then for char I guess you should
transliterate it if the string is longer than one character.
Either by using
--- Comment #14 from paolo dot carlini at oracle dot com 2008-12-05 09:42
---
(In reply to comment #13)
If _M_thousands_sep must be a single _CharT, then for char I guess you
should
transliterate it if the string is longer than one character.
Either by using glibc transliteration
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |paolo dot carlini at oracle
|dot org
--- Comment #15 from jakub at gcc dot gnu dot org 2008-12-05 09:48 ---
Well, if you take first byte from a multibyte sequence, then it is IMNSHO
something that should be solved for 4.4 too. For say ru_RU.UTF-8 that means
you emit invalid UTF-8 if you separate digits with say '\xc2',
--- Comment #16 from paolo dot carlini at oracle dot com 2008-12-05 09:51
---
(In reply to comment #15)
Well, if you take first byte from a multibyte sequence, then it is IMNSHO
something that should be solved for 4.4 too. For say ru_RU.UTF-8 that means
you emit invalid UTF-8 if
--- Comment #17 from paolo dot carlini at oracle dot com 2008-12-05 09:54
---
Created an attachment (id=16831)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16831action=view)
Draft
Draft patch using is_IS instead of fr_FR.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38411
--- Comment #18 from paolo dot carlini at oracle dot com 2008-12-05 09:55
---
HJ, can you test it and report? Thanks!
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38411
--- Comment #19 from tsyvarev at ispras dot ru 2008-12-05 11:08 ---
It seems that C++ standard contains contradiction about thousands separator in
C locale:
22.2.3.1, p1 says:
The instantiations required in Table 51 (22.1.1.1.1), namely numpunctwchar_t
and numpunctchar, provide
--- Comment #20 from paolo at gcc dot gnu dot org 2008-12-05 13:09 ---
Subject: Bug 38411
Author: paolo
Date: Fri Dec 5 13:07:53 2008
New Revision: 142472
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=142472
Log:
2008-12-05 Paolo Carlini [EMAIL PROTECTED]
PR
--- Comment #21 from paolo dot carlini at oracle dot com 2008-12-05 13:09
---
Fixed.
--
paolo dot carlini at oracle dot com changed:
What|Removed |Added
--- Comment #2 from hjl dot tools at gmail dot com 2008-12-05 05:25 ---
Revision 142439 is the cause.
--
hjl dot tools at gmail dot com changed:
What|Removed |Added
--- Comment #3 from hjl dot tools at gmail dot com 2008-12-05 05:34 ---
Jakub, there was a similar problem with locale on Linux before. Do you
remember it?
--
hjl dot tools at gmail dot com changed:
What|Removed |Added
21 matches
Mail list logo