In perl.git, the branch smoke-me/khw-locale has been created
<http://perl5.git.perl.org/perl.git/commitdiff/d699551b62d3f64667b6adb4ab421cfd1f95133e?hp=0000000000000000000000000000000000000000>
at d699551b62d3f64667b6adb4ab421cfd1f95133e (commit)
- Log -----------------------------------------------------------------
commit d699551b62d3f64667b6adb4ab421cfd1f95133e
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 20:07:30 2014 -0600
XXX cpan upstream Allow dynamic lock of LC_NUMERIC
When processing version strings, the radix character must be a dot even
if we otherwise would be using some other character. vutil.c
upg_version() changes to the dot, but calls sv_catpvf() which may try to
change the character to something else. This commit introduces a way to
lock the character to a dot around the call to sv_catpvf()
M intrpvar.h
M locale.c
M perl.h
M t/porting/customized.dat
M vutil.c
commit 2472e14bd4f9ee241632ca73de5869fb17298e3e
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 19:40:12 2014 -0600
Fix up LC_NUMERIC wrap macros
perl.h has some macros used to manipulate the locale exposed for the
category LC_NUMERIC. These are currently undocumented, but will need to
be documented as the development of 5.21 progresses. This fixes these
up in several ways:
The tests for if we are in the correct state are
made into macros. This is in preparation for the next commit, which
will make one of them more complicated, and so that complication will
only have to be in one place.
The variable declared by them is renamed to be preceeded by an
underscore. It is dangerous practice to have a name used in a macro, as
it could conflict with a name used by outside code. This alleviates it
somewhat by making it even less likely to conflict. This will have to
be revisited when some of these macros are made part of the public API.
The tests to see if things need to change are reversed. Previously we
said we need to change to standard, for example, if the variable for
'local' is set. But both can be true at the same time if the underlying
locale is C. In this case, wwe only need to change if we aren't in
standard. Whether that is also local is irrelevant.
M locale.c
M perl.h
commit 5828f7d8c0a4c99a3270b9acb0e8e472919c937a
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 14:05:48 2014 -0600
Keep LC_NUMERIC in C locale, except for brief periods
This is for XS modules, so they don't have to worry about the radix
being a non-dot. When the locale needs to be in the underlying one, the
operation should be wrapped using macros for the purpose. That API may
change as we gain experience in 5.21, so I'm not including it now.
M MANIFEST
M ext/XS-APItest/APItest.xs
A ext/XS-APItest/t/locale.t
M locale.c
M perl.c
M pod/perldelta.pod
M pod/perllocale.pod
commit 61e32688cd248a111304c5c06511488f1b5a955e
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 18:07:34 2014 -0600
perllocale: Wrap some text in C<...>
M pod/perllocale.pod
commit ecdd637d394b935adb7b462e48c4b414a443d72c
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 16:05:20 2014 -0600
numeric.c: White-space only
The previous commit added a block around this code, so indent
correspondingly.
M numeric.c
commit c57b12cd6e1ad44962fa0ab8d0a97cc2c2b47d72
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 16:02:24 2014 -0600
Make sure locale set right for radix parsing
I haven't found a test case this fails for in v5.20, but I'm sure there
is one. But two commits from now would fail if this wasn't done.
M numeric.c
commit 70a4585f4ea79ee5be9fdeda748266d73374f4e7
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 14:03:53 2014 -0600
perllocale: Wrap some text in C<...>
M pod/perllocale.pod
commit b927542b7b6920bdb73ee5f6f505e7a4a02213c3
Author: Karl Williamson <[email protected]>
Date: Sun Jun 1 13:42:31 2014 -0600
Avoid locale function overhead
For the LC_NUMERIC locale category, one can swap between setlocale being
to "C" or to the underlying locale. Perl keeps track of the state
using two boolean variables. By testing these before calling the swap
functions, we can skip calling them if the current state is the one we
want to be in, and avoid the function call overhead, as the function
becomes a no-op if the current state is the desired one.
M perl.h
commit 0beb157f57870ead8da002a63effd862b6a0b212
Author: Karl Williamson <[email protected]>
Date: Thu May 15 21:25:32 2014 -0600
t/loc_tools.pl: Clarify comment
M t/loc_tools.pl
commit cbaf43e78ee9c55aba174e36752696133133c0f2
Author: Karl Williamson <[email protected]>
Date: Thu May 15 21:18:14 2014 -0600
'use locale' no longer ever fails.to compile
Thus we can skip the machinations we used to do to make sure things
compiled.
M ext/Pod-Html/lib/Pod/Html.pm
M ext/XS-APItest/t/handy.t
M ext/re/t/reflags.t
M t/op/quotemeta.t
M t/op/taint.t
M t/re/fold_grind.t
M t/re/pat.t
M t/run/locale.t
M t/uni/fold.t
M t/uni/overload.t
commit 87ec658db39f973df27df838239b2aa9d47998eb
Author: Karl Williamson <[email protected]>
Date: Thu May 15 19:29:41 2014 -0600
Set utf8 flag properly in localeconv
Rare, but not unheard of, is for the strings returned by localeconv to
be in UTF-8. This commit looks for and sets the UTF-8 flag if they are.
so encoded.
A private function had to changed from static for this. It is renamed
to begin with an underscore to emphasize its private nature.
M embed.fnc
M embed.h
M ext/POSIX/POSIX.xs
M locale.c
M pod/perldelta.pod
M proto.h
M t/run/locale.t
commit f777cfe255c266ba9e39e6e148cffd8343e0116b
Author: Karl Williamson <[email protected]>
Date: Thu May 15 18:30:37 2014 -0600
Exclude undefined hash elements from localeconv()
A given platform may not have all the localeconv elements available, or
Perl may be compiled to not use them. Don't define hash elements for
the missing ones.
M ext/POSIX/POSIX.xs
M pod/perldelta.pod
M pod/perllocale.pod
commit 9ffd661efa6a6996bafe7f01dcb74d39d6167c78
Author: Karl Williamson <[email protected]>
Date: Thu May 15 18:13:08 2014 -0600
Swap #if sense for localeconv()
When the else clause is trivial, and the if clause is long, It's far easier
to understand if they're swapped
so the short clause and the else are right after the if.
M ext/POSIX/POSIX.xs
commit bb4c1d1eb90188c468fe597ba8552c188c3fd56d
Author: Karl Williamson <[email protected]>
Date: Thu May 15 15:40:51 2014 -0600
Localeconv() should be independent of 'use locale'
localeconv() should return the values for the underlying locale of
the program regardless of whether the calling place is within the
scope of "use locale" or not. Otherwise, it makes no sense to call it
from outside such scope, and a pure perl module that calls it on behalf
of a caller would likely get it wrong.
M ext/POSIX/POSIX.xs
M ext/POSIX/lib/POSIX.pm
M ext/POSIX/lib/POSIX.pod
M pod/perldelta.pod
M pod/perllocale.pod
M t/run/locale.t
-----------------------------------------------------------------------
--
Perl5 Master Repository