Branch: refs/heads/smoke-me/khw-env
Home: https://github.com/Perl/perl5
Commit: a15c1afbb00842f86875011bb494b524dc80caa1
https://github.com/Perl/perl5/commit/a15c1afbb00842f86875011bb494b524dc80caa1
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/harness
Log Message:
-----------
XXX skip croak.t under sanitizer
Commit: 9a696251d76919cbce1baff1267fcb2c549af174
https://github.com/Perl/perl5/commit/9a696251d76919cbce1baff1267fcb2c549af174
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/op/sub.t
Log Message:
-----------
op/sub.t: Cancel watchdog when done
A watchdog timer should be cancelled after the test(s) it guards.
Otherwise, when someone adds new tests after it in the file, and doesn't
notice that the tests are under the watchdog, those new tests can fail.
These failures may be intermittent, only happening under heavy load.
Commit: bc5c37876b8048e89675f6c9a625b9128ea366c3
https://github.com/Perl/perl5/commit/bc5c37876b8048e89675f6c9a625b9128ea366c3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/test.pl
Log Message:
-----------
test.pl: Add comment that should clear watchdog
As it says, failure to cancel a timer can lead to failing (or worse:
flapping) tests
Commit: 2fb14de7db8fb3e7cc9a6bbbafbc4b5093e28231
https://github.com/Perl/perl5/commit/2fb14de7db8fb3e7cc9a6bbbafbc4b5093e28231
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/TEST
Log Message:
-----------
XXX skip cpan testing
Commit: 47bb167fe5b06b919ae941fd8aa5750ab82131b3
https://github.com/Perl/perl5/commit/47bb167fe5b06b919ae941fd8aa5750ab82131b3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M MANIFEST
M charclass_invlists.h
M lib/unicore/mktables
M lib/unicore/uni_keywords.pl
M regcharclass.h
A t/re/uniprops11.t
A t/re/uniprops12.t
A t/re/uniprops13.t
A t/re/uniprops14.t
A t/re/uniprops15.t
A t/re/uniprops16.t
A t/re/uniprops17.t
A t/re/uniprops18.t
A t/re/uniprops19.t
A t/re/uniprops20.t
A t/re/uniprops21.t
A t/re/uniprops22.t
A t/re/uniprops23.t
A t/re/uniprops24.t
M uni_keywords.h
Log Message:
-----------
uniprops 24
Commit: 825c8f0dd137975fc9ce3ea6118e76d8848ddd18
https://github.com/Perl/perl5/commit/825c8f0dd137975fc9ce3ea6118e76d8848ddd18
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M MANIFEST
A t/uni/idstart.pl
A t/uni/idstart00.t
A t/uni/idstart01.t
A t/uni/idstart02.t
A t/uni/idstart03.t
A t/uni/idstart04.t
A t/uni/idstart05.t
A t/uni/idstart06.t
A t/uni/idstart07.t
A t/uni/idstart08.t
A t/uni/idstart09.t
A t/uni/idstart10.t
A t/uni/idstart11.t
A t/uni/idstart12.t
A t/uni/idstart13.t
A t/uni/idstart14.t
A t/uni/idstart15.t
A t/uni/idstart16.t
A t/uni/idstart17.t
A t/uni/idstart18.t
A t/uni/idstart19.t
A t/uni/idstart20.t
A t/uni/idstart21.t
A t/uni/idstart22.t
A t/uni/idstart23.t
M t/uni/variables.t
Log Message:
-----------
Split t/uni/variables.t into multiple tests
These can be done in parallel; otherwise this is often the test that
finishes last, holding up the test suite completion.
Commit: b86c8833fa99470baa341039ededfe896729143b
https://github.com/Perl/perl5/commit/b86c8833fa99470baa341039ededfe896729143b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/test.pl
Log Message:
-----------
XXX test.pl: dont unlink temps
Commit: 5ad23a3722cdac3124e54ce4a1634a12c271765f
https://github.com/Perl/perl5/commit/5ad23a3722cdac3124e54ce4a1634a12c271765f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/test.pl
Log Message:
-----------
Revert "XXX test.pl: dont unlink temps"
This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.
Commit: 32a0786054051708675d2f2e2dd09c45559124ba
https://github.com/Perl/perl5/commit/32a0786054051708675d2f2e2dd09c45559124ba
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
run/locale.t: more debug
Commit: 1606981fc05ee5bfb98258c91fc83ab3b824d2f9
https://github.com/Perl/perl5/commit/1606981fc05ee5bfb98258c91fc83ab3b824d2f9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
XXX run/locale.t: maybe f move test
Commit: c5e3be44c6c86d53d718cfdbe4304a64c86b6392
https://github.com/Perl/perl5/commit/c5e3be44c6c86d53d718cfdbe4304a64c86b6392
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Clean up white space/comments
Change tabs to blanks; Fix indentation; chomp trailing white space
Remove some blank lines that don't contribute to readability
Add/change comment wording
Commit: ce237fef272089cdf56e54da855ef51f96a4d375
https://github.com/Perl/perl5/commit/ce237fef272089cdf56e54da855ef51f96a4d375
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Simplify locale handling
I read the code over and realized that there was a much simpler way to
do things.
Commit: c41b55affde9cb21cf6bf298127bc90c4d87ed14
https://github.com/Perl/perl5/commit/c41b55affde9cb21cf6bf298127bc90c4d87ed14
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Debug
Commit: 42e88790ad80915691a732c25444f69d9b9e2269
https://github.com/Perl/perl5/commit/42e88790ad80915691a732c25444f69d9b9e2269
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Add logic to avoid having to change locales
Prior to this commit, unless the locale was C or POSIX, it changed it
temporarily so as to make sure the decimal point radix character was a
dot.
But on POSIX platforms or C99 compilers, there are easy ways to
determine if the radix is a dot or not, without having to look at the
locale. This commit changes to take advantage of those mechanisms to
avoid toggling the locale unless it is actually needed to be done.
Only if the compiler is C89 on a non-POSIX box will the previous
existing method be used.
Commit: 841cdfe1d9457a7a751dc9f7c6f4dd15b492d96c
https://github.com/Perl/perl5/commit/841cdfe1d9457a7a751dc9f7c6f4dd15b492d96c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: C.UTF-8 also has a dot radix character
This is another locale besides C and POSIX that are guaranteed to have
the radix character be a dot.
Very likely, locales beginning with "en_" will too. But this isn't
guaranteed.
Commit: c3c6c4eb1ad212ff59624d035f69fcf0bf4295dc
https://github.com/Perl/perl5/commit/c3c6c4eb1ad212ff59624d035f69fcf0bf4295dc
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Don't use Perl locale mechanisms
The code in this function may be called from places that participate in
the extensive Perl locale-handling mechanisms. But it may also be
called from code that isn't.
That means it has to use the base level libc functions for its locale
handling, and to be careful to not interfere with the Perl data
structures. When there is a possibility of collisions with other
threads, a mutex must be used to prevent that. There is still the
possibility of races if another thread is not using a mutex to protect
its locale accesses; but that can't be helped.
Recent perls have added mechanisms to allow for an API that can be used
to do mutex locking without harming the Perl data structures.
This commit changes vutil.c to use them if available, and using no-ops
or the best available alternatives, if not.
Commit: 2063696a4f0811c0130bf116f997b19848cb4031
https://github.com/Perl/perl5/commit/2063696a4f0811c0130bf116f997b19848cb4031
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
f vutil
Commit: fd2b999201146b9518af113cd00c9e5caf17a529
https://github.com/Perl/perl5/commit/fd2b999201146b9518af113cd00c9e5caf17a529
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil
Commit: 8540ee8a32ac653e2667c1a6f78fca390df4ff27
https://github.com/Perl/perl5/commit/8540ee8a32ac653e2667c1a6f78fca390df4ff27
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
f vutil
Commit: 9f026cc51f226bff20c9a950d01c52b5444bf9df
https://github.com/Perl/perl5/commit/9f026cc51f226bff20c9a950d01c52b5444bf9df
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/version/t/07locale.t
Log Message:
-----------
version::07locale.t: Use I18N::Langinfo, not POSIX::localeconv()
The former is always present; the latter might not be.
Commit: 56f3d70510018e7484299c2d5633778016150720
https://github.com/Perl/perl5/commit/56f3d70510018e7484299c2d5633778016150720
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/version/t/07locale.t
Log Message:
-----------
version 07locale.t should use LC_NUMERIC, not ALL
These outliers don't belong. This file is working on LC_NUMERIC only.
Commit: be24031738d6e2761390329ba9d45f3dec0a260b
https://github.com/Perl/perl5/commit/be24031738d6e2761390329ba9d45f3dec0a260b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Archive-Tar/t/02_methods.t
Log Message:
-----------
XXX skip Archive-Tar because of symlinks
Commit: 9d2ff24cf948d85d6d42a1f5befffe3bcd5f6c0a
https://github.com/Perl/perl5/commit/9d2ff24cf948d85d6d42a1f5befffe3bcd5f6c0a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/porting/cmp_version.t
Log Message:
-----------
XXX skip cmp_version.t because of sym links
Commit: b213dcc95bc835a267e2b762c51f4ee20dfedb20
https://github.com/Perl/perl5/commit/b213dcc95bc835a267e2b762c51f4ee20dfedb20
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
XXX temp to test broken lconv on non-Windows
Commit: 62dd485574b5ee96368a3772337c20fa12800aff
https://github.com/Perl/perl5/commit/62dd485574b5ee96368a3772337c20fa12800aff
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Sys-Syslog/t/syslog-inet-udp.t
M cpan/Sys-Syslog/t/syslog.t
Log Message:
-----------
XXX skip syslog tests because fail without LC_TIME
Commit: 4acff77c871c93a0cbaf9160d057259c2aa9a280
https://github.com/Perl/perl5/commit/4acff77c871c93a0cbaf9160d057259c2aa9a280
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
Log Message:
-----------
XXX Configure temporary to get no_nl, etc working
Commit: 253db1f88dad4027816256894a34c3b5c73c9893
https://github.com/Perl/perl5/commit/253db1f88dad4027816256894a34c3b5c73c9893
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M win32/config_H.gc
M win32/config_H.vc
Log Message:
-----------
Regenerate Configure after metaconfig backports applied
Commit: 1c0196276e813680a254a36cff2cdd628dafdf17
https://github.com/Perl/perl5/commit/1c0196276e813680a254a36cff2cdd628dafdf17
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
M config_h.SH
M uconfig.h
M win32/config_H.gc
M win32/config_H.vc
Log Message:
-----------
Regenerate Configure after rm thread-safe nl_langinfo_l
Commit: 54a9052fcffa7fa8b9b0657bce0fe502848d34cc
https://github.com/Perl/perl5/commit/54a9052fcffa7fa8b9b0657bce0fe502848d34cc
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
M Cross/config.sh-arm-linux
M Cross/config.sh-arm-linux-n770
M Porting/config.sh
M config_h.SH
M configure.com
M metaconfig.h
M plan9/config_sh.sample
M uconfig.h
M uconfig.sh
M uconfig64.sh
M win32/config.gc
M win32/config.vc
M win32/config_H.gc
M win32/config_H.vc
Log Message:
-----------
XXX No count Regenerate Configure after LC_ALL
Commit: eedf4fd7f955ea8b507a9dcb5b9f872231630632
https://github.com/Perl/perl5/commit/eedf4fd7f955ea8b507a9dcb5b9f872231630632
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Use an enum to simplify consecutive value initialization
This commit replaces the clumsy method to initialize some symbols with
consecutive vaues. This also presents opportunities to declare
variables as the particular enum type, to allow for better checking and
code generation.
Commit: d225c2124037f505905fbd7c6f8d92b30fc68d2f
https://github.com/Perl/perl5/commit/d225c2124037f505905fbd7c6f8d92b30fc68d2f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c: Always leave a space for LC_ALL entries
Some platforms may not have the LC_ALL conglomerate category. This
commit leaves a placeholder for it anyways. Having this always there
can lead to some simplifications.
Commit: b052154ec73d92e05fd513c3edb53b14dfa9a318
https://github.com/Perl/perl5/commit/b052154ec73d92e05fd513c3edb53b14dfa9a318
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M intrpvar.h
M perl.h
Log Message:
-----------
perl.h: Create a locale mnemonic #define for sync across files
Commit: 8f86312364fe0f9631efc535c84b981af5a21215
https://github.com/Perl/perl5/commit/8f86312364fe0f9631efc535c84b981af5a21215
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
XXX temporary: undef LC_ALL
Commit: 79a588188632ac06ddea01dc2357860c50254ec2
https://github.com/Perl/perl5/commit/79a588188632ac06ddea01dc2357860c50254ec2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Fake up win32 compile a bit
Commit: b726ddbdbb63386600690708d6f3c1de23871588
https://github.com/Perl/perl5/commit/b726ddbdbb63386600690708d6f3c1de23871588
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
ruler
Commit: 9a11a75968a67015f673ca9569ce6961ec13cd0d
https://github.com/Perl/perl5/commit/9a11a75968a67015f673ca9569ce6961ec13cd0d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M sv.c
Log Message:
-----------
newSVbool(): Fix compiler warning
The parameter was declared const in embed.fnc, but not in the function
prototype
Commit: 1c0859414c40efceb0402a70c15019d10504b4c2
https://github.com/Perl/perl5/commit/1c0859414c40efceb0402a70c15019d10504b4c2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
regnode_after(): Fix compiler warning
A parameter to this function was declared const in its prototype but not
in embed.fnc.
Commit: 4399ff4bb2b5d99a65756dc7c39124a4a0ef6a16
https://github.com/Perl/perl5/commit/4399ff4bb2b5d99a65756dc7c39124a4a0ef6a16
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
M utf8.c
Log Message:
-----------
uvoffuni_to_utf8_flags_msgs(): Fix compiler warning
A parameter to this function was declared const in embed.fnc, but isn't
const.
This commit also adds a const to another parameter that is constant.
Commit: 901ba868cccb6dcf3715ad3ccc369cefa28b313b
https://github.com/Perl/perl5/commit/901ba868cccb6dcf3715ad3ccc369cefa28b313b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
S_clear_placeholders(): Fix compiler warning
A parameter to this function was declared const in its prototype but not
in embed.fnc, and had a different name
Commit: d85d221313feb1240717c0e424a286a24ec08528
https://github.com/Perl/perl5/commit/d85d221313feb1240717c0e424a286a24ec08528
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
DEBUG_
Commit: 7c27f797a2f3a7ff1ba152550ab55d69caf6b5ae
https://github.com/Perl/perl5/commit/7c27f797a2f3a7ff1ba152550ab55d69caf6b5ae
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.c
Log Message:
-----------
XXX appears to be an existing bug need multiplicity for cur_locale obj
SEE what is failing, maybe only non2008 nonsetlocale
Commit: a00181e5f5a03ca2cdb84fdd63d5ca491a60d8c5
https://github.com/Perl/perl5/commit/a00181e5f5a03ca2cdb84fdd63d5ca491a60d8c5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: debug with thread id
Commit: f0853289feb9247b1468d73599884ed72ba97c02
https://github.com/Perl/perl5/commit/f0853289feb9247b1468d73599884ed72ba97c02
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
M util.c
Log Message:
-----------
XXX memlog
Commit: 9ee375600fef31c4dbe5e2980e54a4b6ffb1a8ba
https://github.com/Perl/perl5/commit/9ee375600fef31c4dbe5e2980e54a4b6ffb1a8ba
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX win workaround
Commit: 9d8082f7cfbbb5b915459bdfe4f7a05fb5be81ca
https://github.com/Perl/perl5/commit/9d8082f7cfbbb5b915459bdfe4f7a05fb5be81ca
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
just after XXX win workaround
Commit: b3a379916e9b1d7c51502cd7613b735fa9272e4d
https://github.com/Perl/perl5/commit/b3a379916e9b1d7c51502cd7613b735fa9272e4d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale_threads.t
M t/run/locale.t
Log Message:
-----------
locale_threads
Commit: b5981acc11eb6abf3ea4984c532149e422af7f3c
https://github.com/Perl/perl5/commit/b5981acc11eb6abf3ea4984c532149e422af7f3c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Debug locking
Commit: b366a2a6e1f676ef925bd4fef7ea6cd415dc4286
https://github.com/Perl/perl5/commit/b366a2a6e1f676ef925bd4fef7ea6cd415dc4286
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
M t/run/switchDx.t
Log Message:
-----------
debug thread
Commit: 99b7afa6882a28adeb1a091ccad70f424bec7cce
https://github.com/Perl/perl5/commit/99b7afa6882a28adeb1a091ccad70f424bec7cce
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M dist/threads/threads.xs
M inline.h
Log Message:
-----------
threads.xs DEBUG_U
Commit: 0ba9c3f4f46bb0ca8f08365bf8639416f7aceb5a
https://github.com/Perl/perl5/commit/0ba9c3f4f46bb0ca8f08365bf8639416f7aceb5a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
XXX: UCRT mingw is not likely locale-thread safe
In order for mingw to be locale-thread safe, it needs UCRT which current
packages don't tend to have. But this commit adds a XXX -DUCRT
Commit: f2af430221dde2ce312a5a06d884a00192e96c47
https://github.com/Perl/perl5/commit/f2af430221dde2ce312a5a06d884a00192e96c47
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loc_tools
Commit: 0d05ace2ba1adabb7c922fa81a341fc4e8bff457
https://github.com/Perl/perl5/commit/0d05ace2ba1adabb7c922fa81a341fc4e8bff457
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
XXX t/loc_tools.pl: Temp debug
Commit: 35a413127493afbd03cb19ec10c50745b520a731
https://github.com/Perl/perl5/commit/35a413127493afbd03cb19ec10c50745b520a731
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
XXX loc tools needs work
Commit: 7f630c5984e1c40feb3f66f184463cb5e830cde2
https://github.com/Perl/perl5/commit/7f630c5984e1c40feb3f66f184463cb5e830cde2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loc_tools
Commit: 988c3fc986ffa39e39e9e7293ac4383bde15cf7f
https://github.com/Perl/perl5/commit/988c3fc986ffa39e39e9e7293ac4383bde15cf7f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: define locale mutex under more cirumstances
Prior to this commit, it wasn't defined if we aren't paying attention to
locales; but that doesn't mean they don't exist, and the operations that
affect them are still callable; so they should have a mutex to prevent
one thread from overwriting another's.
Commit: d8bec0f0cc700c4574acc115320ca10c493a11e2
https://github.com/Perl/perl5/commit/d8bec0f0cc700c4574acc115320ca10c493a11e2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
perl.h: Also recognize -DNO_THREAD_SAFE_LOCALE
It would be a reasonable Configure option to say
-Accflags=-DNO_THREAD_SAFE_LOCALE
Commit: bc5f544b384758c4430d740cc3029e601621af85
https://github.com/Perl/perl5/commit/bc5f544b384758c4430d740cc3029e601621af85
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: configthreadlocale() error checking
The code previously just assumed the system call always worked. But it
may not if the CRTL is wrong; this surfaced on a mingw compile.
It's better to have it fail outright than to continue and silently give
a wrong answer.
Commit: d950969ae07a3dcacf22139e1f47b719b58271ef
https://github.com/Perl/perl5/commit/d950969ae07a3dcacf22139e1f47b719b58271ef
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Turn mutex warning into a panic
This was my attempt to keep going and try to recover after a problem was
found: an unbalanced number of locks/unlocks. However, in looking at
a many-million line execution trace, I realized that the recovery likely
doesn't lead to correct results, and we should quit immediately when it
happens.
Commit: 637fdd85e796afa2fd96b5f0b75c8195927fede5
https://github.com/Perl/perl5/commit/637fdd85e796afa2fd96b5f0b75c8195927fede5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: White space, comments only
Commit: f250f1918d8fe0c44246734b4c02b93a242e9a96
https://github.com/Perl/perl5/commit/f250f1918d8fe0c44246734b4c02b93a242e9a96
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h change lock debugging text
Commit: 03efb89920d7bd955a5fe9b04abe2e2b0629f9de
https://github.com/Perl/perl5/commit/03efb89920d7bd955a5fe9b04abe2e2b0629f9de
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/harness
Log Message:
-----------
XXX t/harness temp tweaks
Commit: 9fbfc5f771f92f8aed5b116d176fb09ea4a59696
https://github.com/Perl/perl5/commit/9fbfc5f771f92f8aed5b116d176fb09ea4a59696
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M pod/perllocale.pod
Log Message:
-----------
perllocale Xxx start of changes
Commit: 7339046ae7c57591b1a3c9e45e2a4591cd691c77
https://github.com/Perl/perl5/commit/7339046ae7c57591b1a3c9e45e2a4591cd691c77
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M hints/freebsd.sh
M hints/openbsd.sh
Log Message:
-----------
XXX try out bsd 2008
Commit: 3de3f2593a5aae69a68ea49d7c37b1fd3888b790
https://github.com/Perl/perl5/commit/3de3f2593a5aae69a68ea49d7c37b1fd3888b790
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Don't use locale items unless using locale
If we are configured to not look at locales at all, we shouldn't be
looking at threaded locales nor POSIX 2008 ones.
This commit fixes a situation that is not likely at all to show up in
real life, but I stumbled across it in testing weird configurations.
Commit: 9e589b9bd658ba867a6ba0363f0255b399e32a14
https://github.com/Perl/perl5/commit/9e589b9bd658ba867a6ba0363f0255b399e32a14
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Remove redundant set
This ||= is useless, as just above we've already set MULTIPLICITY if
USE_ITHREADS is set.
Commit: 236cab0d6cb62d0be6f6a1d305c2f34c38a75df8
https://github.com/Perl/perl5/commit/236cab0d6cb62d0be6f6a1d305c2f34c38a75df8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
XXX temp: lib/locale.t: debug
Commit: 8d90902242564d83e6daae853985b5d911af0861
https://github.com/Perl/perl5/commit/8d90902242564d83e6daae853985b5d911af0861
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t FILE debug
Commit: 754a06bbe8ed341767e15cf936df7051f6e61176
https://github.com/Perl/perl5/commit/754a06bbe8ed341767e15cf936df7051f6e61176
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t
Commit: 0e9dcecfde34aa140dbee49c1e94dde693d15b1f
https://github.com/Perl/perl5/commit/0e9dcecfde34aa140dbee49c1e94dde693d15b1f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 91709b5620a670a1986e3256814c42a7141d41b2
https://github.com/Perl/perl5/commit/91709b5620a670a1986e3256814c42a7141d41b2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M handy.h
Log Message:
-----------
XXX cygwin debugging small macro buf
Commit: d9eed4dd664c3f42727913aff607e61693a1cdbc
https://github.com/Perl/perl5/commit/d9eed4dd664c3f42727913aff607e61693a1cdbc
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M iperlsys.h
Log Message:
-----------
iperlsys.h: TODO need to look at adding mutexes
Commit: c55273e85eeaba350cdb5468cc90618f868aee85
https://github.com/Perl/perl5/commit/c55273e85eeaba350cdb5468cc90618f868aee85
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M regen/reentr.pl
Log Message:
-----------
reentr.pl: XXX about needing mutex
Commit: db01ca24be515adf0e0cf8060241d6a10ade6d56
https://github.com/Perl/perl5/commit/db01ca24be515adf0e0cf8060241d6a10ade6d56
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M regexec.c
Log Message:
-----------
regexec.c: XXX has cast to U8 for some reason
Commit: 95b3b29349672b2bf3d6ffb5d1dee6f9fe0f1200
https://github.com/Perl/perl5/commit/95b3b29349672b2bf3d6ffb5d1dee6f9fe0f1200
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M sv.c
Log Message:
-----------
perlapi: Combine sv_eq(), sv_eq_flags() entries
Commit: ccb740e12f91c9a37d870cff1b359db503bc887e
https://github.com/Perl/perl5/commit/ccb740e12f91c9a37d870cff1b359db503bc887e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
perlxs
Commit: 7f147afa90a7cd5697c6fc6a390f005959924853
https://github.com/Perl/perl5/commit/7f147afa90a7cd5697c6fc6a390f005959924853
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M dist/IO/IO.xs
Log Message:
-----------
XXX check if using ppport IO.xs: Remove fallback code furnished by ppport
Commit: b71971cf9169a39b863eae7683371105359d5f1c
https://github.com/Perl/perl5/commit/b71971cf9169a39b863eae7683371105359d5f1c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M pp.c
Log Message:
-----------
Debug Windows memory usage in pp_study
Commit: f7025dd933506446ca51754647125751f83be491
https://github.com/Perl/perl5/commit/f7025dd933506446ca51754647125751f83be491
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M pod/perlmod.pod
Log Message:
-----------
perlmod
Commit: efbb2fc71dd36cc49b02735f393c9497f4ef24c8
https://github.com/Perl/perl5/commit/efbb2fc71dd36cc49b02735f393c9497f4ef24c8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
XXX perl.h: Debugging mutex lock'
Commit: 1edb5d5b96c1e502fe15590b5e626e97f58254ef
https://github.com/Perl/perl5/commit/1edb5d5b96c1e502fe15590b5e626e97f58254ef
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rename S_calculate_LC_ALL_string()
Its return is a string. Add the suffix '_string' to emphasize that
Commit: 5ddda2126e635253479f59e9c91cd5064b79f632
https://github.com/Perl/perl5/commit/5ddda2126e635253479f59e9c91cd5064b79f632
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/version/t/07locale.t
Log Message:
-----------
07locale.t: Add some Windows locales to try
On various windows machines, none of the locales listed in <DATA> exist.
This commit copies ones from core's loc_tools.pl to give additional
possibilities to try
Commit: d896c74b77f3492097a30b4e596c0404793638f7
https://github.com/Perl/perl5/commit/d896c74b77f3492097a30b4e596c0404793638f7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use proper macro
querylocale_c() likely will expand to the correct thing, but it isn't
defined until higher in the stack of locale handling layers. Instead
use the construct that is lower in the stack.
Commit: 50feac7574d9c0abc461c828e9e09e4d93fdc285
https://github.com/Perl/perl5/commit/50feac7574d9c0abc461c828e9e09e4d93fdc285
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move some static functions within file
This places them more conveniently.
Future commits will continue this reordering until like-level and
like-kind functions are close to each other physically in the file.
Commit: 990cb755c243ca4b4f51cee048b549b0b4cc5a88
https://github.com/Perl/perl5/commit/990cb755c243ca4b4f51cee048b549b0b4cc5a88
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Replace an assumption by a cpp check
This commit adds a preprocessor directive to check if we are running on
a POSIX 2008 system, rather than just assume we are if the earlier
possibilities weren't the case. And it causes a compile time error if
none pan out.
Commit: f2d0e2359516e8101ca7a62f3c9836f10f1b6cce
https://github.com/Perl/perl5/commit/f2d0e2359516e8101ca7a62f3c9836f10f1b6cce
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't compile without LC_ALL under POSIX 2008
The code assumes that if you have POSIX 2008, you have LC_ALL. This
adds a compile-time error check to prevent someone from finding that out
the harder way.
Commit: 41da838ef54e3039aa6da23845e7d700d863f8e2
https://github.com/Perl/perl5/commit/41da838ef54e3039aa6da23845e7d700d863f8e2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a parallel array adjacent to its mates
This is in preparation for making their parallelism more obvious
Commit: 332217e46c07c2528b34582c3905f113c915334a
https://github.com/Perl/perl5/commit/332217e46c07c2528b34582c3905f113c915334a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
locale.c: Add warning if function return ignored
Commit: 12906396f074c838bd800808e809df60491de091
https://github.com/Perl/perl5/commit/12906396f074c838bd800808e809df60491de091
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Properly identify reason for placeholder in arrays
This is needed to handle the case where a locale category passed in (via
Perl_setlocale) is unknown to perl, hence is considered illegal.
The previous comments were misleading.
Commit: 83b699acaea1fc1235fb1e71eadb6d7af2b0c19b
https://github.com/Perl/perl5/commit/83b699acaea1fc1235fb1e71eadb6d7af2b0c19b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
Change return of S_get_category_index_nowarn
This is in preparation for it being called from more than a single
place. Instead of returning -1 on error, it returns an out-of-bounds
value 1 greater than the largest legal value. There is a placeholder
entry in all the arrays this can be indexed into for that illegal value.
This means if it somehow gets used, we wont get a segfault, like we
would on the -1, but instead a value that will show up as wrong, but not
crash.
Commit: 6da40ccfd2aa975c893b9d1c4e6d19f3191de209
https://github.com/Perl/perl5/commit/6da40ccfd2aa975c893b9d1c4e6d19f3191de209
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
M locale.c
Log Message:
-----------
locale.c: Check for illegal input category
It is possible for Perl_setlocale() to be called with a category value
that is illegal, or is just unknown to us. There is a function that
maps category numbers into our internal indexing scheme. It maps any
unknown value to the same index, larger than any legal one.
Prior to this commit, there was no check that the input was valid; we
went off processing it as if it were valid. That there was an element
in the tables that corresponds to this index prevented any illegal
memory acceses, but it is better to check early and return an error.
Commit: 0d6a7c57a150be13b7f0f51b79b00e0a6725f95d
https://github.com/Perl/perl5/commit/0d6a7c57a150be13b7f0f51b79b00e0a6725f95d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Revamp initialization of parallel arrays
This new method eliminates a lot of #ifdef's in each of the array
initializations, consolidating all the array entries for a category
to be in a single group. This facilitates ease of checking that things
are correct and the addition of new items.
A Factory pattern to generate all these could be used instead. But I
don't know how to do that in cpp (I suppose some recursive #includes
would do it uglily), and I don't think it's worth it to do a regen
script.
There is a reason for the apparently weird indentation, that future
commits will reveal.
Commit: c39a13b8714a33a307753fc299187235f17000a3
https://github.com/Perl/perl5/commit/c39a13b8714a33a307753fc299187235f17000a3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
Rename SETLOCALE_LOCK to LOCALE_LOCK
This mutex isn't just about the setlocale function; it applies to all
locale related critical sections.
Commit: 1532b8b2c2a4c7b6dc2b728599dcf4160eb9b25a
https://github.com/Perl/perl5/commit/1532b8b2c2a4c7b6dc2b728599dcf4160eb9b25a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid runtime strlen() calls
The lengths of these strings are known at compile time. This commit
creates an array of those lengths to avoid calling strlen() in a loop
unnecessarily.
Commit: 4b759b112214ce80d872ce774f364d3ed563f0a9
https://github.com/Perl/perl5/commit/4b759b112214ce80d872ce774f364d3ed563f0a9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Replace loop with a switch()
locale.c uses tables to specify data and actions about the different
locale categories on the system. The categories are opaque integers
specified by libc, so they have to be mapped to indices into the tables
for our use. Prior to this commit, that was done by a loop iterating
over each possibility until it found a match. This commit changes that
to use a switch() statement, so that the compiler can choose what the
best way to implement things are.
Commit: c7ee7bf662b9c798ad8aff2bd53843e7d7d7d304
https://github.com/Perl/perl5/commit/c7ee7bf662b9c798ad8aff2bd53843e7d7d7d304
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Refactor S_get_category_index()
There is actually only one place where the locale category can be input
from code outside this file. Now that the previous commit added
validation to that one spot, The rest of the calls should already be
validated, and if the input is bad, it means that there is a serious
error in the logic of this code, and warrants panicking.
This commit collapses two functions into one plus a macro to call it
with the right parameters. It moves the warning into the one place
where it is useful, and panics if there is a problem otherwise.
Commit: 142f240efb91cb4e7dc849b7c45c7eff9d3dd3c2
https://github.com/Perl/perl5/commit/142f240efb91cb4e7dc849b7c45c7eff9d3dd3c2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M makedef.pl
M perl.h
Log Message:
-----------
XXXleaks: Remove PL_cur_LC_ALL for non-Windows
This value is now held in a slot in PL_curlocales[] for non-Windows
platforms.
Commit: 12f155ca45e1a7388a834dafd2999f9bb49ac7ef
https://github.com/Perl/perl5/commit/12f155ca45e1a7388a834dafd2999f9bb49ac7ef
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rename S_myquerylocale_i()
This name doesn't effectively describe it. The new name is
querylocale_2008_i, indicating it is for the POSIX 2008 API.
Commit: 77d9b5dd1d0c6d54df385bbcca7691f0a0e7ac3f
https://github.com/Perl/perl5/commit/77d9b5dd1d0c6d54df385bbcca7691f0a0e7ac3f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Separate setlocale into bool and query
There are two ways that POSIX specifies to change the locale.
The earlier interface is setlocale(), which either returns NULL on
failure, or a pointer to global static memory containing the character
string of the changed locale. That may very well be the input locale
name, or the platform can return something that to it is equivalent.
The second, from the 2008 standard, is newlocale() which returns either
NULL on failure or a pointer to an opaque object, and there is no
official way to find out what the current locale is. (The next proposed
version of the Standard will finally add this capability.) Some
platforms have introduced a querylocale() to get this information.
(glibc has a hidden function to do so.)
Note that the return value of setlocale() is problematic, valid only
until the next call to that function, which might be immediately from
another thread. The value, if needed, has to be saved to a per-thread
buffer in a critical section with the function call. That buffer
presents opportunities for leaking or being destroyed too early,
resulting in heap use after being freed.
And it turns out that the value is often not needed; often what is
needed is only if the operation failed or succeeded.
This commit starts the process of limiting the use of the changed value
to just where its really needed. It does this by changing the
newlocale() form to return success/failure, removing all the macros that
think you can set and get the value in the same operation, and minor
fixups.
Commit: 431f6e7571cc9a763727cd1645cef8fdea40c982
https://github.com/Perl/perl5/commit/431f6e7571cc9a763727cd1645cef8fdea40c982
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Rmv less_dicey_void_setlocale_r()
This function is simple, but almost entirely redundant with
less_dicey_bool_setlocale_r(). A simple wrapper to the latter suffices.
The commit also changes the macros for this to use void_setlocale_r() as
the base which the other two are defined in terms of. This avoids a
runtime calculation of the internal index corresponding to the input
locale category except when we are about to panic.
Commit: 9cb5d08982a22081962e701f0b63c6429fe4beb7
https://github.com/Perl/perl5/commit/9cb5d08982a22081962e701f0b63c6429fe4beb7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid a runtime calculation
As in the previous commit, this rewrites the void_setlocale_X macros so
as to not need a runtime calculation except in the very rare event of
executing a panic.
Commit: 530774c89e8efad07f06ce98d165b0c768b777c4
https://github.com/Perl/perl5/commit/530774c89e8efad07f06ce98d165b0c768b777c4
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add missing panic
In just the POSIX 2008 implementation of setting locales, the panic upon
failure had been omitted. The whole point of a void call is so that the
caller doesn't have to check the return code of something that should
never fail, and can just assume that if it gets to the next statement
everything worked as expected.
Commit: f7298c5aae7e74684c39fa049105b4b721042862
https://github.com/Perl/perl5/commit/f7298c5aae7e74684c39fa049105b4b721042862
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Reorder code, add comments
There are three separate implementations of an internal API for locale
handling. This commit makes them stand out in the code, and makes the
ordering within each implementation parallel to the other
implementations.
And adds explanatory comments.
Commit: 39e5e5493798a876d80c942fb95cdec2c313e5c0
https://github.com/Perl/perl5/commit/39e5e5493798a876d80c942fb95cdec2c313e5c0
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove one-off macro
This was used to prevent an unnecessary copy. But the next commit will
change the macro it was avoiding to not always do the copy. That will
avoid more copies than this would. The copy that results will still be
unnecessary in some cases, but there is a net gain.
Commit: cee86c4c437a2f55f0cff0c9d321ca882ca23bcf
https://github.com/Perl/perl5/commit/cee86c4c437a2f55f0cff0c9d321ca882ca23bcf
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add a convenience macro query_nominal_locale_i
This is used when the locale needs to be what an external caller would
see. Adding this simplifies some code.
Commit: 4b5d954eb1c293f846deeab97400bf6baa16fa05
https://github.com/Perl/perl5/commit/4b5d954eb1c293f846deeab97400bf6baa16fa05
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move copy from macro to called function
Not all returns from the function need to be copied. Thus this
eliminates some extraneous copies.
Commit: d7f33130dd60fb2eb5fb6319ddba18ac613b9d8e
https://github.com/Perl/perl5/commit/d7f33130dd60fb2eb5fb6319ddba18ac613b9d8e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_toggle_locale_i: Move some assert()s, initialization
Commit: 11d90878bef66a6682758d210e8fc8c92db50516
https://github.com/Perl/perl5/commit/11d90878bef66a6682758d210e8fc8c92db50516
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Add extra debug info to panics
This commit adds some call stack information to the message that gets
output when about to panic because of an unanticipated failure in
the locale handling code.
Commit: 2481a048babb64532357cb16ee08c1344eb5b69d
https://github.com/Perl/perl5/commit/2481a048babb64532357cb16ee08c1344eb5b69d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add void_setlocale_with_caller macros
These pass a file and line number of further up the calling stack to a
panic so as to improve debugging information.
Commit: 43abc04d51777ac82d066215afce5ebe9124a9af
https://github.com/Perl/perl5/commit/43abc04d51777ac82d066215afce5ebe9124a9af
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Initialize PL_curlocales at startup
Previously this was done later, which meant other code had to take them
being uninitialized into consideration over and over at runtime. That
code is hereby removed.
This commit enables further simplifications to follow in later commits.
Commit: ca26384702928fd55e3e87bdf612e3b0ad58f0c3
https://github.com/Perl/perl5/commit/ca26384702928fd55e3e87bdf612e3b0ad58f0c3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use void_ macro form when ignoring return
The void_ form panics if unsuccessful; and here we are relying on it
being successful.
Commit: 96e8253a319c71d71e3e02fc2c813928394d57f8
https://github.com/Perl/perl5/commit/96e8253a319c71d71e3e02fc2c813928394d57f8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't exclude LC_ALL in loop
This function was setting each individual locale category to the same
value. But if all the subcomponents are the same, so is LC_ALL. No
need to special case it
Commit: 7d27b35b6e0adc6d1cd800e5bcb6157bdcb27f89
https://github.com/Perl/perl5/commit/7d27b35b6e0adc6d1cd800e5bcb6157bdcb27f89
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change function to return void
It just returns the input value unchanged; this is a no-op.
Commit: 5db0b850206def0c4a3601bc6c3564a752e18168
https://github.com/Perl/perl5/commit/5db0b850206def0c4a3601bc6c3564a752e18168
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Remove no-longer needed parameter and computation
When a locale category changes, LC_ALL necessarily also does. When we
are looping changing a bunch of categories, LC_ALL's intermediate values
are of no importance; only the final value matters. Prior to this
commit, this was handled by setting a flag to not do the recalculation
until the final loop iteration.
But a more elegant solution is to not recalculate it all, until the
value is actually needed. So the code is changed to invalidate the
stored value if an individual locale category changes, and then do the
calculation only when needed and invalidated.
Commit: 76f55a4e6db2d0c17bb40b764a5df7f28c11a515
https://github.com/Perl/perl5/commit/76f55a4e6db2d0c17bb40b764a5df7f28c11a515
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change parameter name for static function
category_locales_list is somewhat more descriptive than individ_locales
Commit: dcecbecd5d4d22da428e0bafe5faec65cd8bb4e2
https://github.com/Perl/perl5/commit/dcecbecd5d4d22da428e0bafe5faec65cd8bb4e2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change API of S_calculate_LC_ALL_string
This function looks at all the individual locale categories on the
system. So far it is called with either an array of the current values
for them, or an object from which those values can be derived.
But the object is always the current locale object in effect. The
querylocale_i() macro can be used to get this information without
needing to have to name the object. Therefore the object parameter is
superfluous, and the function could be notified to use querylocale_i by
making the array parameter NULL.
But right now you get one or the other. There are two signatures to
this function, depending on the platform capabilities.
This commit collapses those into one signature, the one with an array
parameter. And then NULL is used to trigger calling querylocale_i().
The reason to do this is that future commits will want to pass an array
to this function, even when it is compiled on a platform that currently
doesn't allow that option.
Commit: d630aac8be74dbd1adb892e3323de56e038bcd13
https://github.com/Perl/perl5/commit/d630aac8be74dbd1adb892e3323de56e038bcd13
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Simplify S_get_LC_ALL_display
The previous enhancements to calculate_LC_ALL_string means this function
can just call it without having to loop itself.
Commit: 1aebcaac7b176e25b89d13c4c823629217b0759a
https://github.com/Perl/perl5/commit/1aebcaac7b176e25b89d13c4c823629217b0759a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slight refactoring of S_querylocale_2008_i
This just moves some asserts, adds comments and a branch prediction, and
replaces a variable used in only one place by it value.
Commit: 58ed2561e8ce45d56d0d487ae582060e594f3edf
https://github.com/Perl/perl5/commit/58ed2561e8ce45d56d0d487ae582060e594f3edf
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Reorder #if clauses
Currently, the two clauses are about the same length, but in the next
commit the current first clause will become a lot longer.
The principal that it's easier to read code that disposes of the easy
cases first comes into play, so, reverse the clause order.
Commit: a671d3dd297c362a549a9b77fa26b45f6aae465c
https://github.com/Perl/perl5/commit/a671d3dd297c362a549a9b77fa26b45f6aae465c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Inline only remaining use of querylocale_l()
Future commits would make this macro need to be a function anyway, and
since there is only one use of it, just inline it. The assertion it
defines is no longer needed, as we know that the one place it is now
placed is valid.
This also adds explanatory comments
Commit: 2db4538bc19770e921045f75d1f9ce49d6f8033c
https://github.com/Perl/perl5/commit/2db4538bc19770e921045f75d1f9ce49d6f8033c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Flatten two nested if's
These can be combined into a single more cohesive construct
Commit: 3d24f2894aabb1e4cf2b975816a338e1b2290cdb
https://github.com/Perl/perl5/commit/3d24f2894aabb1e4cf2b975816a338e1b2290cdb
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Workaround some libc POSIX 2008 bugs
Some systems try to make C.UTF-8 the same locale as plain C or POSIX.
The latter two names are synonymous according to the POSIX Standard, but
C.UTF-8 isn't. It might be possible to implement them all with one
locale internally, but in some cases, at least, that isn't transparent
to us, leading to wrong results.
This commit adds a workaround for this problem.
See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269375
Commit: fb521a1eda092db9db245fad235d8959400d2410
https://github.com/Perl/perl5/commit/fb521a1eda092db9db245fad235d8959400d2410
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX pod?: locale.c: Add optional locking around querylocale()
The querylocale() libc call on some systems is non-standard, and
experience has shown it isn't necessarily thread-safe, especially on
Darwin. It does appear to be safe on modern *BSD boxes. This commit
adds a locking mechanism that can be set up in a hints file.
Commit: c72b909d0ba851cb199bfff93042ee363bf56ceb
https://github.com/Perl/perl5/commit/c72b909d0ba851cb199bfff93042ee363bf56ceb
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a #define, and add a comment
Commit: dc87d5ceb88977f40b836d84552e7e3d233fdc2f
https://github.com/Perl/perl5/commit/dc87d5ceb88977f40b836d84552e7e3d233fdc2f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Split up S_setlocale_from_aggregate_LC_ALL
This splits out the parsing of the LC_ALL string from the locale
setting. Future commits will use the parse portion in more places.
The new code doesn't panic on syntax errors, unlike the old. This is
because we should never panic on user input, but return failure instead.
Commit: 3e085401594152eb3e0240a2fefa4e17e8bc3a0b
https://github.com/Perl/perl5/commit/3e085401594152eb3e0240a2fefa4e17e8bc3a0b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Create is_disparate_LC_ALL()
This macro uses the results of the new Configure probe that tells us how
the platform represents disparate LC_ALL strings.
Commit: 6fc0036f68d1722201084fd63ebd21051a82d793
https://github.com/Perl/perl5/commit/6fc0036f68d1722201084fd63ebd21051a82d793
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move two helper functions for POSIX 2008 implementation
Commit: 132dcf7fcbb1a350b422566ee4b1a093b0e0ad77
https://github.com/Perl/perl5/commit/132dcf7fcbb1a350b422566ee4b1a093b0e0ad77
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Add development aid for simulating LC_ALL fake positional notation
There are two ways that systems represent LC_ALL when not all individual
categories are in the same locale. One is
category_name=value
pairs, and the other is a positional notation
cat1_value|cat2_value|cat3_value|...
where the separator (here '|') varies between platforms, and the
position of a value determines which category it applies to.
This commit adds the ability to simulate a positional box on a
name=value box, so that many bugs can be found without having to access
a real positional box.
Commit: b3456f9bb9c1573ca0fb582f2792b711d4445ade
https://github.com/Perl/perl5/commit/b3456f9bb9c1573ca0fb582f2792b711d4445ade
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add support for LC_ALL positional notation
Some platforms use a positional notatiol for LC_ALL when not all
categories are the same, like
C/English/C.UTF-8/ ...
This commit takes advantage of the new Configure probe to now handle
those when parsing an LC_ALL string.
Commit: a900c0b49d6118ebdb4976cd2e5a084ced6daa23
https://github.com/Perl/perl5/commit/a900c0b49d6118ebdb4976cd2e5a084ced6daa23
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: use variable to avoid extra comparisons
The mnemonic name also makes it clearer. Instead of comparing two
variables multiple times, set a boolean once with the result, and use
that.
Commit: d810969885aa51ca4f13a0bb5ee45e7ece20adaa
https://github.com/Perl/perl5/commit/d810969885aa51ca4f13a0bb5ee45e7ece20adaa
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Windows Use .ACP for sys default fallback
Prior to this commit the locale handling code thought that Windows used
"" for the system default locale. But it's not, and to get to the
change in the initialization code, the "" had already been tried and
failed.
Commit: e486bfcd1473833b6a98f18f93eeb7f58aa2d76c
https://github.com/Perl/perl5/commit/e486bfcd1473833b6a98f18f93eeb7f58aa2d76c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c, perl.h: comments, white space
Commit: fad2c92aead3e674322eefaaa182ce1eee3dc52d
https://github.com/Perl/perl5/commit/fad2c92aead3e674322eefaaa182ce1eee3dc52d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX maybe not for windows: S_calculate_LC_ALL_string(): save value after
calculation
On some platforms the string returned by this function also needs to be
kept up-to-date in an array element. This commit changes the function
to do the update (after the potentially expensive calculation) as a
side-effect, so as to avoid unnecessary recalculations.
Commit: 8b4d8ec5d8402acd5b61fa40943bf4bc9345fa9a
https://github.com/Perl/perl5/commit/8b4d8ec5d8402acd5b61fa40943bf4bc9345fa9a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Precalculate LC_ALL string boiler plate length
When not all categories have the same locale, the internal
representation of LC_ALL is a sequence of 'cat=value' pairs, separated
by semi-colons. The only things that vary are the values. This commit
sums up the non-varying portions at compile time.
Commit: 36a510261fe1828c489c6906d01f00b35df3e1d6
https://github.com/Perl/perl5/commit/36a510261fe1828c489c6906d01f00b35df3e1d6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_querylocale_2008_i: Add caller's line# param
This will be helpful in debugging
Commit: cc33ed521dda0cde86ae87be5ad67cc97785c3f0
https://github.com/Perl/perl5/commit/cc33ed521dda0cde86ae87be5ad67cc97785c3f0
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
locale.c: Calculate native LC_ALL strings
There are two methods of representing non-uniform LC_ALL strings. One
is name=value pairs, and the other is positional. Now that there is a
Configure probe that detects the details, calculate_LC_ALL_string() is
here enhanced to have a parameter passed to it as to which variety the
output should be in, and to generate the proper format.
Commit: 73029c96fca6411865e986e61514c522a6ccc402
https://github.com/Perl/perl5/commit/73029c96fca6411865e986e61514c522a6ccc402
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Revamp S_stdize_locale()
We are now able to parse and construct non-uniform LC_ALL strings. A
big part of this function was trying to deal with these, but now that
can be farmed out.
It's now extremely unlikely this function will now actually change
anything, based on recent field experience. To save copying that
therefore won't likely ever be needed, this function now returns its
input if unchanged, and a mortalized copy if it unlikely does need to be
changed. That means it no longer needs a buffer reserved for it.
The input is going to be the static global buffer pointed to by the
return of setlocale(). That means calls to this function need to be
protected by mutexes in threaded systems, and the result safely copied
during the critical section. This requirement is unchanged by this
commit.
Commit: 8ea12171896b054e1c64460997f3a9a28dc63225
https://github.com/Perl/perl5/commit/8ea12171896b054e1c64460997f3a9a28dc63225
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M sv.c
Log Message:
-----------
Rename the buffer in S_less_dicey_locale
It was reusing the buffer formerly used by S_stdize_locale(), but now
its only use is from this function, so name it accordingly.
Commit: 2006115f6a0429563a6a1fe946ae3276c33ac79d
https://github.com/Perl/perl5/commit/2006115f6a0429563a6a1fe946ae3276c33ac79d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_stdize_locale() Rmv testing for spurious '='
This code had been added to counteract occasional cases of improper
syntax in a locale string. Other fixes to the locale handling have
resulted in those cases not now showing up. It was never clear if the
changes that code made to the locale name were actually the right thing
to do.
Now, we have the ability to correctly parse locale strings on all
platforms tested on. If there is a problem with a platform, the parsing
discovers it and returns an error, which stdize_locale() checks for and
also returns an error if found, and so on back up the line to the user
calling code.
Commit: 7fe0c626f20c0bcdc38208b56d86e60672bd2171
https://github.com/Perl/perl5/commit/7fe0c626f20c0bcdc38208b56d86e60672bd2171
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
XXX perldelta other pod: Compile stdize_setlocale() only if requested
XXX perldelta, and where else?
This very old function has been whittled down to just looking for
newlines in returned locales. Those just haven't come up in platforms
we have tested on in recent years. Therefore, this is extra work on
most, or perhaps all platforms. Should a platform show that this is
still needed, its hints file can be changed to add a Configure option.
Commit: d956d8e62e7f400b30fe33a64680b2ba6a0dd0f5
https://github.com/Perl/perl5/commit/d956d8e62e7f400b30fe33a64680b2ba6a0dd0f5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M hints/aix.sh
M locale.c
Log Message:
-----------
Properly handle broken setlocale(LC_ALL, NULL)
Early AIX versions could return a truncated value in this case.
https://www.ibm.com/support/pages/apar/IV22097
Tests were skipped as a result by
59b4d2932ceb16662879bca2a22315c3597276ae.
This commit adds an easy workaround for this bug, changes the AIX hints
page to enable it; the next commit will revert the test skipping.
Commit: 50b1e664ee9fd0f23b3f956225885fbdf4fd7023
https://github.com/Perl/perl5/commit/50b1e664ee9fd0f23b3f956225885fbdf4fd7023
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale.t
M t/lib/warnings/regexec
M t/run/locale.t
Log Message:
-----------
Revert "AIX: skip some locale tests"
This reverts commit 59b4d2932ceb16662879bca2a22315c3597276ae.
which was a temporary fix for 5.38.0.
And now a workaround is in place for the defective libc implementation.
Commit: 2d650c88b158d832a779dfb6bc2291aed02526bb
https://github.com/Perl/perl5/commit/2d650c88b158d832a779dfb6bc2291aed02526bb
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Create STDIZED_SETLOCALE_LOCK
Its best to use a mutex associated with the operation. This creates one
for stdized_setlocale(), which is just an alias for another mutex.
Commit: a2bb2d4f744958da0de6239d8bf76d68b88dc5c7
https://github.com/Perl/perl5/commit/a2bb2d4f744958da0de6239d8bf76d68b88dc5c7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a macro definition earlier in the file
Commit: 29c9666e53d009303022fd475d604b7ee4468dfb
https://github.com/Perl/perl5/commit/29c9666e53d009303022fd475d604b7ee4468dfb
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: define HAS_EXTENDED_OS_ERRNO
on the systms that have it.
Commit: b69b456acbe07e2806b1228ac425b4beac99cd50
https://github.com/Perl/perl5/commit/b69b456acbe07e2806b1228ac425b4beac99cd50
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
Log Message:
-----------
locale.c: Change DEBUG statements to include non-0 errno
This is very helpful when things go wrong.
Commit: 4eab7337bb7d73b35fbe3679f57c741aa8201e23
https://github.com/Perl/perl5/commit/4eab7337bb7d73b35fbe3679f57c741aa8201e23
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only define string constant on platforms that need it
Commit: 9351e221129beee8a397bc70be0247e6def00a47
https://github.com/Perl/perl5/commit/9351e221129beee8a397bc70be0247e6def00a47
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Perl_sync_locale(): Best to change to global locale
This didn't actually cause a bug AFAIK, but prior to this commit, the
comment was wrong. The comment makes sense, so bring the code into
compliance.
The reason it was not a bug is that even though the thread remained in
the per-thread locale, it uses the global locale API to set things.
Commit: 1a04a922caa1a6610b5a9ad8b48a6bde5a6436d0
https://github.com/Perl/perl5/commit/1a04a922caa1a6610b5a9ad8b48a6bde5a6436d0
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c(): Use LC_ALL if available
Now that we have code that works on platforms with differing ways of
representing LC_ALL, we can use it instead of looping through all the
subcomponents.
Commit: 0cf77b73fb712c8e6ef18e0143c9230c7601f4de
https://github.com/Perl/perl5/commit/0cf77b73fb712c8e6ef18e0143c9230c7601f4de
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Extract code into a function
This is in preparation for a future commit where it will be called from
more than one place.
Commit: 35c2ccf01b6f52965440e98ce6cb245658ce2a90
https://github.com/Perl/perl5/commit/35c2ccf01b6f52965440e98ce6cb245658ce2a90
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Extract code into separate function
This is in preparation for it being called from a second location in a
future commit.
Beyond the move, the only changes are to white space, and a
PERL_UNUSED_ARG.
Commit: b968627c185e98a493a5e3dde11f5a0db9c73c08
https://github.com/Perl/perl5/commit/b968627c185e98a493a5e3dde11f5a0db9c73c08
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Complement initialization of boolean
This was my attempt to make the difference listing in the next commit
smaller, but it didn't help much.
Commit: e635da2ef60b11cbab705d53388f150f2bf78643
https://github.com/Perl/perl5/commit/e635da2ef60b11cbab705d53388f150f2bf78643
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rework locale initialization loop
The previous code was always hard to understand, with a self-modifying
loop. I finally figured out a clearer way to do it, by using an enum
with all the possibilities, and a switch statement that sets up the loop
for each, or decides this possibility isn't valid on this platform. The
first possibility that works exits the loop.
Commit: e1bb37ef4771aea6f02f204f7d76fec33870206e
https://github.com/Perl/perl5/commit/e1bb37ef4771aea6f02f204f7d76fec33870206e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv redundant sanity check
This was done only on Windows, to verify that the perl was operating on
a system that has a working _configthreadlocale(), when our Configure
expects it to. But the previous commit now executes this function
anyway at the endif of initialization, so that is soon enough to fail if
something is wrong, making this redundant.
Commit: a52bec450411daf3cf900ba60ea9116987ee9172
https://github.com/Perl/perl5/commit/a52bec450411daf3cf900ba60ea9116987ee9172
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M utf8.h
Log Message:
-----------
silence utf8.h warning
Commit: 3fbd1db7dd11469d1dc0b0c821bbd45f32ed31ec
https://github.com/Perl/perl5/commit/3fbd1db7dd11469d1dc0b0c821bbd45f32ed31ec
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extract code into a macro
This is in preparation for a simplification in future commits.
Commit: f9299466f2a54accd00e23f1e026e6316622ad58
https://github.com/Perl/perl5/commit/f9299466f2a54accd00e23f1e026e6316622ad58
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extend macro from previous commit
Actually this creates a macro of the same name that accomplishes the
same thing, but specifically for Windows.
Commit: 8d4c2d64fc7e5c51bc0df76a2f48d4e976e87279
https://github.com/Perl/perl5/commit/8d4c2d64fc7e5c51bc0df76a2f48d4e976e87279
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't over allocate array
This previously added an extraneous unused element.
Commit: c4ab5c47f17a24d1a8e9e0758cde8c6c7a432442
https://github.com/Perl/perl5/commit/c4ab5c47f17a24d1a8e9e0758cde8c6c7a432442
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Bring declaration inside #if's
This would now cause a compilation error if the code gets screwed up.
Commit: f10849249f4b0328abe350180a94992f76895262
https://github.com/Perl/perl5/commit/f10849249f4b0328abe350180a94992f76895262
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slight refactor of switch_to_global_locale()
Now that we can better handle any legal LC_ALL string, we can just use
LC_ALL when available.
Commit: 68e39c86c0b9fffe37a92638a05618f67858f529
https://github.com/Perl/perl5/commit/68e39c86c0b9fffe37a92638a05618f67858f529
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
M utf8.c
Log Message:
-----------
Perl__byte_dump_string(): Properly handle NULL input
Instead of an assert, this returns (nil) and things can proceed.
Commit: 5c8492435b0a51d1601040f708283a5cb5c343f8
https://github.com/Perl/perl5/commit/5c8492435b0a51d1601040f708283a5cb5c343f8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Combine two condiionals to rm special case
The case removed is handled transparently below.
Commit: f98dce389a4c765baa55768c7e8c16703a893ba4
https://github.com/Perl/perl5/commit/f98dce389a4c765baa55768c7e8c16703a893ba4
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Change var name
This variable is really the LANG environment variable; change its name
to correspond.
Commit: 1c384ceb217c474c6b72b9969aa0b7f4f5f19520
https://github.com/Perl/perl5/commit/1c384ceb217c474c6b72b9969aa0b7f4f5f19520
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Add comments
Commit: f7538b829f5f89f2f82ae48ea96bc2816cd03898
https://github.com/Perl/perl5/commit/f7538b829f5f89f2f82ae48ea96bc2816cd03898
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Combine logic
Prior to this commit, the logic was repeated for non-LC_ALL versus
LC_ALL; the latter being executed in a loop. The logic is not really
trivial and it would be better to have just one instance, so that it
can't get out-of-sync. To do this, this commit moves everything to the
loop, but sets it up for the non-LC_ALL case to just do a single
iteration.
It also avoids going out to the environment and fetching LANG unless
needed. The previous behavior got LANG unconditionally if the loop was
used. It is quite likely that not every locale category would have a
corresponding environment variable set, so that fetch likely wasn't
wasted. But in order to combine things, the checking for LANG is done
in the loop.
The bottom line is that there is extra code required to combine the two
pieces of logic, but I believe the combining of this into a single
paradigm is worth it.
Commit: 9c0d968cd3653f2661094d7c5d39eeb7bde3aa37
https://github.com/Perl/perl5/commit/9c0d968cd3653f2661094d7c5d39eeb7bde3aa37
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX tests; linux doesn't allow this:S_find_locale_from_environment: Handle
disparate LC_ALL
Prior to this commit, it was possible on some platforms to improperly
set a locale category from a locale of "".
Consider:
export LC_ALL="LC_CTYPE=de_DE;LC_NUMERIC=C;LC_TIME=de_DE;..."
and in Perl run with that environment:
print POSIX::setlocale(LC_NUMERIC, "");
Commit: 703fcf317706acd23335f3f37b97abc3a60be5a0
https://github.com/Perl/perl5/commit/703fcf317706acd23335f3f37b97abc3a60be5a0
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
Change parameter name for S_bool_setlocale_2008_i
THe new name is more descriptive
Commit: b7796596acb0dcd1cc84ba942255abac8a731dca
https://github.com/Perl/perl5/commit/b7796596acb0dcd1cc84ba942255abac8a731dca
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Improve debug statements
Commit: ec81a8490c5531aaaebb006676c6e55c6364402f
https://github.com/Perl/perl5/commit/ec81a8490c5531aaaebb006676c6e55c6364402f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Check for failure return
Previously, this would forge ahead; looking at the code it seems it
would fail later on anyway, but it is best to check and fail
immediately.
Commit: 25aa7c3250d8cf6ce0d195cbc41338c441ec3fb7
https://github.com/Perl/perl5/commit/25aa7c3250d8cf6ce0d195cbc41338c441ec3fb7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Separate out failure code
This causes the failure to be handled by going to effectively a
tail-call spot. This is in preparation for it being used in another
place.
Commit: 65d1d5296c79452c2f4a3eb2d79d83666ebd0f34
https://github.com/Perl/perl5/commit/65d1d5296c79452c2f4a3eb2d79d83666ebd0f34
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move declaration closer to first use
Commit: ec88b6b6d7dae8f091407a6cdf87698167d6caac
https://github.com/Perl/perl5/commit/ec88b6b6d7dae8f091407a6cdf87698167d6caac
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Extract two debug statements into macros
This is in preparation for them being called from other places
Commit: cf77689019a86586b5f7bbabb4f774f7b09de8f7
https://github.com/Perl/perl5/commit/cf77689019a86586b5f7bbabb4f774f7b09de8f7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Indent/outdent some lines
This is to make the differences in the next commit smaller
Commit: a917ee5debc79f65c0446230a2778484e9d4afe6
https://github.com/Perl/perl5/commit/a917ee5debc79f65c0446230a2778484e9d4afe6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv obsolete code
A "" input locale has been expanded by the time it gets here, so this is
never true; it is a relict from previous implementations.
Commit: 3adb8a2790d0aadfae632fbceec5da9f0aa073fe
https://github.com/Perl/perl5/commit/3adb8a2790d0aadfae632fbceec5da9f0aa073fe
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Copy function call.
This removes a function call from a single place and inserts it in
several. The reason is that it makes a future commit cleaner.
Commit: 76ecaf2e94a4f2d41869b7b005bf8f4e289d82e5
https://github.com/Perl/perl5/commit/76ecaf2e94a4f2d41869b7b005bf8f4e289d82e5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_update_PL_curlocales(): Add parameter
This is the ultimate caller's line number, which will be useful in a
future commit; unused for now.
Commit: d8d82ab641fb5efdcd74c035ea7fb01d9192caa9
https://github.com/Perl/perl5/commit/d8d82ab641fb5efdcd74c035ea7fb01d9192caa9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c: Update comments, white-space in 2 functions
Commit: 3e90bb89691e4656941e446953154bb3c1898cf9
https://github.com/Perl/perl5/commit/3e90bb89691e4656941e446953154bb3c1898cf9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid an (unlikely) leak
As the comments say, this eventuality is unlikely to happen, but if it
did, it would mean a leak.
Commit: 2a56c7a2eac61d19f0a8354a0399fe213cf76eee
https://github.com/Perl/perl5/commit/2a56c7a2eac61d19f0a8354a0399fe213cf76eee
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Remove recursion
This converts recursive calls of this function into an iterative loop.
Besides the obvious benefits, some platforms don't even require a loop,
as a future commit will do.
Commit: 95d40d2cef7eec9a2a933d6a160675619b084b0d
https://github.com/Perl/perl5/commit/95d40d2cef7eec9a2a933d6a160675619b084b0d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
Rmv unused function: S_setlocale_from_aggregate_LC_ALL
Previous commits have removed all uses of this
Commit: fa93ece566db11a3c83036c2a00d8a4256919488
https://github.com/Perl/perl5/commit/fa93ece566db11a3c83036c2a00d8a4256919488
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
S_parse_LC_ALL_string: Squash if categories are same locale
It turns out that some platforms return something like
C/C/C/C/C/C
instead of just the equivalent 'C' when querying LC_ALL. This can lead
to extra work for us, and unnecessary noise when displayed to the user.
This commit changes parse_LC_ALL_string() to look for this case, and to
coalesce the result to just the single value, which is returned in just
the 0th element of the input array, leaving the other elements unused.
It makes this behavior overridable by an input flag, which will be used
in a future commit.
Commit: 1c4a9ebb73f53bc7ce33d21d3de0dc0e9b452cb1
https://github.com/Perl/perl5/commit/1c4a9ebb73f53bc7ce33d21d3de0dc0e9b452cb1
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_update_PL_curlocales(): accept arbitrary LC_ALL string
Prior to this commit, this function couldn't handle an LC_ALL string
that wasn't just a single locale for all categories. But now that we
can parse a disparate string, update this function to use that.
Commit: 36780591ea4cc370dd85b22327a546e8a4be6603
https://github.com/Perl/perl5/commit/36780591ea4cc370dd85b22327a546e8a4be6603
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_setlocale_2008_i(): Use single newlocale() if available
On some platforms the newlocale() libc function when setting LC_ALL can
handle an input locale that sets some categories to one thing; and
others to another; etc. On such platforms, we don't have to loop
through all categories individually.
This commit changes to use that if the #define indicating its
availability is set.
Commit: 25a53d52ed79c98427fcbd3fd2eaae0a2ab512a8
https://github.com/Perl/perl5/commit/25a53d52ed79c98427fcbd3fd2eaae0a2ab512a8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
M perl.c
M sv.c
Log Message:
-----------
XXX Partial need vutil.c first Rmv underlying numeric
This object, only on POSIX 2008 systems, is no longer used. I've been
keeping it around in case I could figure out if it had any remaining
utility, but don't see any.
Commit: 1dd401be90865178b4a8ae8c129c515ca44061c1
https://github.com/Perl/perl5/commit/1dd401be90865178b4a8ae8c129c515ca44061c1
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Use function already designed for the purpose
Instead of several initialization calls, call the overarching one that
includes them all.
Commit: a2c6f2913dd13329e533e91a4437190265789415
https://github.com/Perl/perl5/commit/a2c6f2913dd13329e533e91a4437190265789415
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid a duplicate conditional
Commit: 4a738905d152a90ec3fd6dff375d0edc8804c156
https://github.com/Perl/perl5/commit/4a738905d152a90ec3fd6dff375d0edc8804c156
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Initialize PL_cur_locale_obj
Commit: 9ad69ae47e8abcb0625b7b7624d53056226d7c52
https://github.com/Perl/perl5/commit/9ad69ae47e8abcb0625b7b7624d53056226d7c52
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX Initial guess as to newlocale() capability
glibc has a newlocale() that can handle disparate LC_ALL string input.
This commit is until more data is gathered.
Commit: ca3a05e39f48ffa4ffc7dc99f75616289599fb85
https://github.com/Perl/perl5/commit/ca3a05e39f48ffa4ffc7dc99f75616289599fb85
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Add caller location info to e.g. RESTORE_LC_NUMERIC
These help pinpointing the error source when a failure occurs.
Commit: ccb9d2e6aac2e0b5ba5e361fe26d4b32c468804d
https://github.com/Perl/perl5/commit/ccb9d2e6aac2e0b5ba5e361fe26d4b32c468804d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX tests,delta: Handle glibc extra locale categories
glibc has several locale categories not found in standards. This commit
provides minimal support.
Commit: db67211c6eced6f39eb790ccd7e5f5899068b2d8
https://github.com/Perl/perl5/commit/db67211c6eced6f39eb790ccd7e5f5899068b2d8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M perl.h
M proto.h
Log Message:
-----------
Properly handle ignored locale categories
perl can be compiled to ignore arbitrary locale categories that are
actually on the system. This has never worked transparently, especially
on platforms that use postional notation to represent LC_ALL when not
all categories are set to the same locale. The system calls will return
a string containing the ignored category, and we dont know how to handle
that.
This large commit fixes that by compiling to include the information
about all categories on the system. But if a category is to be ignored,
instead we set it to the C locale, and thwart any effort to change it
away from that locale.
Commit: a3240859228d0fe8cd64b197c640c9f70aa93f2b
https://github.com/Perl/perl5/commit/a3240859228d0fe8cd64b197c640c9f70aa93f2b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Revise warnings when locale init has issues
Previously, we didn't know the possible locale categories on this
system, so grepped through the environment outputting anything that
begins with 'LC_'. But now we do know all of them, and can just use
those.
Commit: 3fbca682cfe5cd7ccef0928edd9141179bd4e77b
https://github.com/Perl/perl5/commit/3fbca682cfe5cd7ccef0928edd9141179bd4e77b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
S_calculate_LC_ALL_string: Add parameter
This parameter is set only when this function is being called by
Perl_setlocale(). This is purely for performance It causes this
function to use a particular buffer and avoid extra copying.
Commit: 68fe1b41f11c771b3e9caa480408bcb04634bc83
https://github.com/Perl/perl5/commit/68fe1b41f11c771b3e9caa480408bcb04634bc83
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
XXX why not failing tests before this?Create S_native_querylocale_i() and use
it
This new function differs from the already existing plain
querylocale_i() in that it returns in the platform's native format,
instead of the internal=to-perl one.
The internal one is used generally so that code doesn't have to cope
with multiple possible formats. The format of the new locale in
Perl_setlocale() is going to be in native format. We effectively
translate it into our internal one at the input edge, and that is used
thereafter.
But until this commit, the translation back to native format at the
output edge was incomplete.
This mostly worked because native format differs from locale.c
internal format in just two ways.
One is the locale for LC_NUMERIC. perl keeps it generally in the C
locale, except for brief intervals which higher level code specifies,
when the real locale is swapped in. (Actually, this isn't quite true.
If the real locale is indistinguishable from C as far as LC_NUMERIC
goes, perl is happy to use it rather than C, so as to save swapping.)
locale.c had the code in it to translate the internal format back to
native, so it worked for this case.
The other is LC_ALL when not all categories are set to the same locale.
Windows and Linux use 'name=value;' pairs notation, while things derived
from BSD (and others) use a positional notation in which only the values
are given, and the system knows which category a given value is for from
its position in the string. Perl worked fine for the name=value pairs
notation, because that is the same as its internal one, so no
translation got done, but until this commit, there were issues on
positional platforms. This seldom got in the way since most people, if
they set the locale at all, will just set it to some single 'foo'.
What this commit effectively does is change Perl_setlocale() to return
the value in the native format which the libc functions are expecting.
This differs from what it used to return only on platforms which use the
positional notation and only for LC_ALL when not all categories are set
to the same locale.
The new function subsumes much of the work previously done in
Perl_setlocale(), and it is able to simplify some of that work.
Commit: 0b501608066ad91dd3bc5f42c2e4d1c290d3a4fe
https://github.com/Perl/perl5/commit/0b501608066ad91dd3bc5f42c2e4d1c290d3a4fe
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
XXX why: locale.c: revise new_LC_ALL
This is because we don't want to use querylocale which is expecting
things to already be set up; instead pass what should happen to finish
the setup.
Commit: 0cc45729dc1aa1bf53cd7193fdc839fbca3b2911
https://github.com/Perl/perl5/commit/0cc45729dc1aa1bf53cd7193fdc839fbca3b2911
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove no longer used macro
Commit: 59d7cb6951c7aa265c7f46acca365fff119d17fe
https://github.com/Perl/perl5/commit/59d7cb6951c7aa265c7f46acca365fff119d17fe
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Add setlocale_i()
This macro is defined on Configurations where a simple unadorned
setlocale works for categories that don't have perl record keeping
involved.
This allows Perl_setlocale() to avoid a lot of unnecessary overhead for
these.
This commit defines it only for unthreaded perls.
Commit: a10379647d51917d75ce5998e48b24ea47983625
https://github.com/Perl/perl5/commit/a10379647d51917d75ce5998e48b24ea47983625
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move S_update_PL_curlocales()
Prior to this commit, it was only for POSIX 2008, but a future commit
will want to use it when not POSIX 2008.
Commit: 6eab18275227b8f4e421ff8fa427e0c4818af9b7
https://github.com/Perl/perl5/commit/6eab18275227b8f4e421ff8fa427e0c4818af9b7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
savepv if threaded, unused I think
Commit: 0a1a0a0154a709d37f184aa9309060dcb05d9c84
https://github.com/Perl/perl5/commit/0a1a0a0154a709d37f184aa9309060dcb05d9c84
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv unexecuted statement after croak
Commit: def2563ea068eb0845d4c05c9617a359793ad7f6
https://github.com/Perl/perl5/commit/def2563ea068eb0845d4c05c9617a359793ad7f6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Improve collation debugging output
This adds a special case for when the buffer is empty
Commit: eaa90fe28a5c4f24074adde54ca8b49dab3b881b
https://github.com/Perl/perl5/commit/eaa90fe28a5c4f24074adde54ca8b49dab3b881b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX introductory file comments
Commit: 10bb32ca1d913e181c7492087b4779a31fe7e87f
https://github.com/Perl/perl5/commit/10bb32ca1d913e181c7492087b4779a31fe7e87f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only compile workaround on platforms needing it
This code works around a bug on Windows with regard to localeconv().
And the bug only exists on such platforms that have thread-safety.
Prior to this commit, the code was compiled on platforms lacking
thread-safety, so was unnecessary.
Commit: d6e593a979db76d182e78f6e5e3f4b44c3dccc39
https://github.com/Perl/perl5/commit/d6e593a979db76d182e78f6e5e3f4b44c3dccc39
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M intrpvar.h
M locale.c
Log Message:
-----------
locale.c: Use wider than U32 for a counter
Processes that change locales are incrementing a counter that could
eventully wrap if the process is long-lived. It's not likely, but it's
also easy to make this a U64 if available, and make the chances of it
happening much closer to zero.
Commit: 6f916fdef392d19179e7749b6d2996b88c5d629e
https://github.com/Perl/perl5/commit/6f916fdef392d19179e7749b6d2996b88c5d629e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move setting errno out of critical section
I doesn't matter much, but its better practice to make critical sections
as small as possible.
Commit: 150e0e069297005fb87e981ec39bfb4a646f4d62
https://github.com/Perl/perl5/commit/150e0e069297005fb87e981ec39bfb4a646f4d62
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
get_win32_message_utf8ness() Fix unlikely case
This function calls get_locale_string_utf8ness_i(). The API of that
function changed earlier in the 5.37 series, and this was not updated to
correspond. It is calling it with category 0, wich it thinks is an
out-of-bounds value, but it really is LC_ALL on Windows. Thus it
actually probably doesn't lead to a failure, but it theoretically could
fail if LC_ALL is not uniform.
So it's better to not succeed just by accident. This commit changes to
now use LC_CTYPE as the category. And if someone has managed to compile
Windows without LC_CTYPE, it now just says that the input string isn't
UTF-8, as without LC_CTYPE, you've only got the C locale.
Commit: 93ecb59d82fac72c506a8b98bc9931196e43552a
https://github.com/Perl/perl5/commit/93ecb59d82fac72c506a8b98bc9931196e43552a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only define a structure if needed
Without LC_NUMERIC, this structure is unused, and generates a compiler
warning.
Commit: 84ef5f7c7f7e2a1960c4f720a212ce46c2a01f18
https://github.com/Perl/perl5/commit/84ef5f7c7f7e2a1960c4f720a212ce46c2a01f18
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Add a debugging statement
This can be helpful in tracing what's happening with nl_langinfo()
calls.
Commit: cc74d1d4aa9cb6162c10dd910d198711407bc26a
https://github.com/Perl/perl5/commit/cc74d1d4aa9cb6162c10dd910d198711407bc26a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Improve wording for Perl_langinfo()
Commit: 5edbead3054a34c2aee755aa9007e81a49d7e2f7
https://github.com/Perl/perl5/commit/5edbead3054a34c2aee755aa9007e81a49d7e2f7
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Critical section around initializing a global
This code should only have a race in the unlikely event that it is an
embedded perl, and there is another perl already running. But best to
avoid the possibility at all.
Commit: 13f1a3f544ef4a71497525d139ab4f9f89b7bc22
https://github.com/Perl/perl5/commit/13f1a3f544ef4a71497525d139ab4f9f89b7bc22
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move #ifdef DEBUGGING
This moves it up to precede a block that only does debugging info.
Commit: 8ae8ec70b6dba724da5f538af69d7acf8c3df050
https://github.com/Perl/perl5/commit/8ae8ec70b6dba724da5f538af69d7acf8c3df050
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_stdize_locale: Set errno if fails
Commit: b65078cfbbcf36b7e7228ae5b0ababfdb583e971
https://github.com/Perl/perl5/commit/b65078cfbbcf36b7e7228ae5b0ababfdb583e971
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX experimental: Define setlocale_i() on unsafe threaded builds
On threaded Configurations where thread-safe locale handling is not
available, perl automatically does a modicum of prevention of races by
executing locale changes in a critical section, and copying the results
to a thread-safe location.
This commit defines setlocale_i() on such builds. This macro is used to
bypass more complex handling required in fully thread-safe builds.
I don't see how this changes thread-safeness on the unsafe builds, and
it passes the tests, but I'm considering it experimental for now, until
later in the development cycle.
Commit: c0242799585b97a1ea824a4b97d5085f85070e97
https://github.com/Perl/perl5/commit/c0242799585b97a1ea824a4b97d5085f85070e97
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/porting/bincompat.t
Log Message:
-----------
skip bincompat.t
Commit: 560ae07e9a1585439789818306d0a03aeb4fe3ae
https://github.com/Perl/perl5/commit/560ae07e9a1585439789818306d0a03aeb4fe3ae
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M hints/darwin.sh
Log Message:
-----------
darwin hints querylocale race in earlier darwins?
Commit: b9aa70645c5ce332238f9b6a23d68983cb18857c
https://github.com/Perl/perl5/commit/b9aa70645c5ce332238f9b6a23d68983cb18857c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M intrpvar.h
Log Message:
-----------
intrpvar.h: Comments
Commit: e62c7f3f92c241f07fc71300a59ac529a78d0174
https://github.com/Perl/perl5/commit/e62c7f3f92c241f07fc71300a59ac529a78d0174
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M embedvar.h
M handy.h
M inline.h
M intrpvar.h
M locale.c
M makedef.pl
M mg.c
M perl.c
M perl.h
M proto.h
M sv.c
Log Message:
-----------
emul
Commit: d490be79955dbe22b409fc4473795e9c70a508ab
https://github.com/Perl/perl5/commit/d490be79955dbe22b409fc4473795e9c70a508ab
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fixup emul
Commit: 0850394686228c0dd7e53cbe7ec64e4c9906d7f4
https://github.com/Perl/perl5/commit/0850394686228c0dd7e53cbe7ec64e4c9906d7f4
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M intrpvar.h
M locale.c
M makedef.pl
M sv.c
Log Message:
-----------
XXX finish msg: locale.c: Improve Windows thread initialization
Commit: ea4cd31955ff9015c634d9ba94c49479af2a8d58
https://github.com/Perl/perl5/commit/ea4cd31955ff9015c634d9ba94c49479af2a8d58
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
locale.c: Change to use enum type
Instead of 'unsigned int', use the more restricted enum.
Commit: 8bb993e62db58d37db906e1231818d1b5935495f
https://github.com/Perl/perl5/commit/8bb993e62db58d37db906e1231818d1b5935495f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Compile utf8ness on platforms that need it
These two functions need to be compiled on certain other platforms than
what was happening.
Commit: c3b443b1a5face4f677f787ff910463dad658f3e
https://github.com/Perl/perl5/commit/c3b443b1a5face4f677f787ff910463dad658f3e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Silence compiler warning on some platforms
This argument isn't used on some platforms.
Commit: d7429354c933c773006a0d4bc95c59eb449e1416
https://github.com/Perl/perl5/commit/d7429354c933c773006a0d4bc95c59eb449e1416
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
M locale.c
M metaconfig.h
M perl.h
Log Message:
-----------
f Configure
Commit: 1e282837bb947b512af707d4c58b3d4a3441ad33
https://github.com/Perl/perl5/commit/1e282837bb947b512af707d4c58b3d4a3441ad33
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
M locale.c
M metaconfig.h
M perl.h
Log Message:
-----------
Revert "f Configure"
This reverts commit 12d2cfd3fbf933bbbfb52a448d8bdda62f7ac100.
Commit: 3be7e0335bdc767f6b94cdb9fe107b97230f603c
https://github.com/Perl/perl5/commit/3be7e0335bdc767f6b94cdb9fe107b97230f603c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
drop when Configure fixed
Commit: 5e6b5690f91b4ff76110c93bb11112f2bce732c8
https://github.com/Perl/perl5/commit/5e6b5690f91b4ff76110c93bb11112f2bce732c8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity
Commit: c1078b19717760e0c8e4d2e833aa2551043730c5
https://github.com/Perl/perl5/commit/c1078b19717760e0c8e4d2e833aa2551043730c5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Move comment
Commit: 85fb774c9816f6487488022a244db85ab2392cf9
https://github.com/Perl/perl5/commit/85fb774c9816f6487488022a244db85ab2392cf9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
Maybe drop: makedef.pl: Move code
Commit: 52985c530e6cae907d974898f1c82429b88195a3
https://github.com/Perl/perl5/commit/52985c530e6cae907d974898f1c82429b88195a3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Remove obsolete symbol
Commit: ced823b6775cc9c19b4fdb2566d447feaeb66fec
https://github.com/Perl/perl5/commit/ced823b6775cc9c19b4fdb2566d447feaeb66fec
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
Add DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 38d546415c498281227b69b605489fcc3ae5795f
https://github.com/Perl/perl5/commit/38d546415c498281227b69b605489fcc3ae5795f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
Fix mingw locale builds
Experience has shown that mingw with an older runtime library doesn't
have more modern Windows features working properly. This commit causes
it to compile with workarounds, but allows the user to
-Accflags='-DUCRT_USED'
to indicate to Configure that the code will be using the modern CRT.
Commit: cac47e88e3087a2a3b2e92303562443780b28604
https://github.com/Perl/perl5/commit/cac47e88e3087a2a3b2e92303562443780b28604
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
Enable DEBUG_SETLOCALE_INCONSISTENCIES
Commit: fa35488b0474df0e73343019e608577c58de0046
https://github.com/Perl/perl5/commit/fa35488b0474df0e73343019e608577c58de0046
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add detail to locale mutex debug
Commit: 551ba51d2c28d20dea2586bdb8e89d14125b63d9
https://github.com/Perl/perl5/commit/551ba51d2c28d20dea2586bdb8e89d14125b63d9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M perl.h
M t/porting/customized.dat
Log Message:
-----------
XXX remaining loose ends
Commit: bbcadcf1f35a99756dad60d422e27da30cd361ba
https://github.com/Perl/perl5/commit/bbcadcf1f35a99756dad60d422e27da30cd361ba
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/version/t/07locale.t
M pod/perlembed.pod
M t/porting/customized.dat
Log Message:
-----------
final commit
Commit: fc3ae03f817ab3f5c32f5927dbf16922509eb76b
https://github.com/Perl/perl5/commit/fc3ae03f817ab3f5c32f5927dbf16922509eb76b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
use enum, maybe drop
Commit: acffd0cdfadd38cb0fc3025b2fa7a40dccbb98d2
https://github.com/Perl/perl5/commit/acffd0cdfadd38cb0fc3025b2fa7a40dccbb98d2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Revert "prev commit"
This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.
Commit: 854f1a6b0e1e1cfe8350e94e92fb3ae2e3268cb2
https://github.com/Perl/perl5/commit/854f1a6b0e1e1cfe8350e94e92fb3ae2e3268cb2
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
more cat index enum
Commit: f6b77908ed793c67a88d70ac67a552a8032b1a90
https://github.com/Perl/perl5/commit/f6b77908ed793c67a88d70ac67a552a8032b1a90
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M dist/Tie-File/t/29a_upcopy.t
Log Message:
-----------
XXX temp: dist/Tie-File/t/29a_upcopy.t: Up alarm
Commit: bce63abf8865e60637a8aadc3e3023fe4e1ffad4
https://github.com/Perl/perl5/commit/bce63abf8865e60637a8aadc3e3023fe4e1ffad4
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
f
Commit: 319e01c428b195fd21dd13ef04a2ff956c73b0c5
https://github.com/Perl/perl5/commit/319e01c428b195fd21dd13ef04a2ff956c73b0c5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h fixup
Commit: d826523fb8dcdcdedb71d10fa721fb72498c6181
https://github.com/Perl/perl5/commit/d826523fb8dcdcdedb71d10fa721fb72498c6181
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M Configure
Log Message:
-----------
f Configure for positional
Commit: ec80e4d128b6825d0b2c158de5b89d11775d54b0
https://github.com/Perl/perl5/commit/ec80e4d128b6825d0b2c158de5b89d11775d54b0
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
f Add positional
Commit: a2938cc61829ae63d0bdf19a973d74164690f666
https://github.com/Perl/perl5/commit/a2938cc61829ae63d0bdf19a973d74164690f666
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fixup init for C C C C C
Commit: 8788f2b3cfd1be31468f88f195e0b77fa602272e
https://github.com/Perl/perl5/commit/8788f2b3cfd1be31468f88f195e0b77fa602272e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Fix strftime inaccuracies, clarify
Commit: 4903c58044c112d2f5eb2743128f5b84ae50562b
https://github.com/Perl/perl5/commit/4903c58044c112d2f5eb2743128f5b84ae50562b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Set errno when my_strftime() fails.
The libc strftime() doesn't have any way to distinguish between
erroneous input and that which just doesn't generate any output; hence
it doesn't set errno.
But my_strftime() has logic to reasonably confidently make that
distinction, so it should set errno when it determines that it is
erroneous input.
Commit: 1d27cfbd355bfe465303a738190a49f68b88cd09
https://github.com/Perl/perl5/commit/1d27cfbd355bfe465303a738190a49f68b88cd09
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
add is_cur_locale_utf8
Commit: 2b99f66cc30aa0945132bf650c2bf4badd55e0c3
https://github.com/Perl/perl5/commit/2b99f66cc30aa0945132bf650c2bf4badd55e0c3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Simplify S_new_ctype
By creating a temporary variable, an else is eliminated, and the
lock/unlock are brought close together.
Commit: f890a15aca357f6d0a6bbc1ceb284733378feb0b
https://github.com/Perl/perl5/commit/f890a15aca357f6d0a6bbc1ceb284733378feb0b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M dist/threads/threads.xs
M embed.fnc
M locale.c
M perl.h
M proto.h
M util.c
M win32/win32thread.c
Log Message:
-----------
switch_locale_context: Add aTHX
This fixes GH #21040
Instead of a dTHX, this passes aTHX automatically, and skips calling
this function if there is no valid context.
It moves that decision into the macro itself, avoiding some #ifdef
directives.
And it adds explanation
f
Commit: 28ccf7d1c3a341d77a4b3ffdd02b9699c1edaa49
https://github.com/Perl/perl5/commit/28ccf7d1c3a341d77a4b3ffdd02b9699c1edaa49
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
strftime: Always restore LC_CTYPE locale
my_strftime toggles LC_CTYPE to match LC_TIME to avoid mojibake.
In reading the code, I realized that there was a code path that doesn't
properly restore it, namely when failure is returned. This commit fixes
that.
Commit: 32d673cab42aa5d0f0ae851c1a1407f1fb199c06
https://github.com/Perl/perl5/commit/32d673cab42aa5d0f0ae851c1a1407f1fb199c06
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time::Piece: Use reentrant API
This single line magically makes this work much better under threading,
though critical section locks need to be added as well.
Commit: 0e3b86c7143c88ff531b744936980451087fc238
https://github.com/Perl/perl5/commit/0e3b86c7143c88ff531b744936980451087fc238
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: Use foldEQ_locale() if available
This supported core function is thread-safe and knows about Perl
internals, so is preferable to the similar libc function, which is now
used only as a fallback. This commit also bomb proofs the code by
adding an additional fallback, specified in C89, which isn't a great
substituted, but far better than nothing.
Commit: 4c7fb7efd2b2a627caaff5dfb47d0cb2ab6dbcea
https://github.com/Perl/perl5/commit/4c7fb7efd2b2a627caaff5dfb47d0cb2ab6dbcea
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: Use isSPACE_LC, not isspace; etc
isDIGIT_LC() does the same thing as isdigit when everything goes well,
but is more robust when things get more complicated. The _LC forms are
thread safe, for example.
But note that this code doesn't work properly for a UTF-8 locale, as it
assumes that a byte and character are the same thing. A major overhaul
would be needed to handle that.
Commit: 112fde65b344045b3ea30ab66965fd8ef210e9fe
https://github.com/Perl/perl5/commit/112fde65b344045b3ea30ab66965fd8ef210e9fe
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't compile unreachable code
This code is attempting to compute the nl_langinfo() codeset of the
current locale. If there is no LC_CTYPE available on the system, the
codeset must be 'C', and the only callers to this static function know
that, and return that answer without calling this function. That means
this part of the function will never be executed. So don't compile it.
Commit: 718e3bf0e7663f077d40c5e6c8303bda85a6d2a9
https://github.com/Perl/perl5/commit/718e3bf0e7663f077d40c5e6c8303bda85a6d2a9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M locale.c
M makedef.pl
Log Message:
-----------
locale.c: Prevent infinite recursion
This could happen on the very rare platform that isn't Windows, nor
supports nl_langinfo(), and has a buggy (or non-existent) mbtowc().
The code implements nl_langinfo() itself by recursion, and for some
locales could end up recursing indefinitely. This commit adds guards to
prevent that.
Commit: 29e8849a314afee1a793548bcbdb9405b55bc502
https://github.com/Perl/perl5/commit/29e8849a314afee1a793548bcbdb9405b55bc502
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add DISABLE_LC_NUMERIC_CHANGES macro
This is for code that needs to keep other code from changing LC_NUMERIC
out from under it, but avoids the knowledge of PL_numeric_standard,
which is used when perl controls the locale handling.
This is designed for 'version' (vutil.c) to use, because it has to
operate seamlessly in the mode where perl controls the handling, and
when it doesn't, even if it doesn't know it doesn't.
Commit: 9d64ae176ebf5a04e53d84fcaa43421057f5363f
https://github.com/Perl/perl5/commit/9d64ae176ebf5a04e53d84fcaa43421057f5363f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Remove extraneous ';'
Commit: de696a9afe0f095f1ea9455123b3688defa3f2a3
https://github.com/Perl/perl5/commit/de696a9afe0f095f1ea9455123b3688defa3f2a3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: localeconv() isn't broken on Windows unthreaded
Nor is it broken if compiled without per-thread locale handling. The
bug in it until VS 2015 was that it always looked at the global locale.
When the only locale available is the global one, there is not breakage.
This commit thus avoids compiling workaround code for the bug when it
isn't necessary.
Commit: 26f29db4f23ef9c8ee0bf0dcd39c8b830c4c6524
https://github.com/Perl/perl5/commit/26f29db4f23ef9c8ee0bf0dcd39c8b830c4c6524
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M thread.h
Log Message:
-----------
thread.h: White space only
Indent some nested preproccessor defines
Commit: 538a8cc754d3dcb70ced4230cc205c8c818f93a5
https://github.com/Perl/perl5/commit/538a8cc754d3dcb70ced4230cc205c8c818f93a5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
time.t
Commit: 8701c3efbb31e862fb207057ce6ac8f9dd5ed20b
https://github.com/Perl/perl5/commit/8701c3efbb31e862fb207057ce6ac8f9dd5ed20b
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
POSIX/t/time.t: Remove no longer necessary code
POSIX::strftime() now automatically handles the case where the locales of
LC_TIME and LC_CTYPE aren't the same. So no need to explicitly do this
in the test file.
Commit: b06b2fe253d6038046681dc35198d2bf3a18c34e
https://github.com/Perl/perl5/commit/b06b2fe253d6038046681dc35198d2bf3a18c34e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
XXX see how affects earlier commits: time.t: Add more strftime tests
Commit: 5c55bb6a2a8bfed5407d10a1068dd461fe242c05
https://github.com/Perl/perl5/commit/5c55bb6a2a8bfed5407d10a1068dd461fe242c05
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: Split my_strftime into 2 functions
Future commits will want the individual functionality the two provided
separately.
Commit: 5e1233d898ea1798d18f71bab57e50d070e9d15a
https://github.com/Perl/perl5/commit/5e1233d898ea1798d18f71bab57e50d070e9d15a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move my_strftime() within the file
This will be more logically placed after future commits
Commit: 9fa9ac77afe5f9c76595180cbb106e0b536ac030
https://github.com/Perl/perl5/commit/9fa9ac77afe5f9c76595180cbb106e0b536ac030
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M ext/POSIX/POSIX.xs
M locale.c
M proto.h
Log Message:
-----------
Implement sv_strftime_tm and sv_strftime_ints
These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.
They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.
The POSIX implementation of strftime is converted to use these.
Commit: df4c43d739f1d243187efb7b8c755244d7622c02
https://github.com/Perl/perl5/commit/df4c43d739f1d243187efb7b8c755244d7622c02
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.pm
M cpan/Time-Piece/Piece.xs
M cpan/Time-Piece/Seconds.pm
M dist/Module-CoreList/lib/Module/CoreList.pm
Log Message:
-----------
Time::Piece: Add critical sections
This calls various macros to make certain libc calls uninterruptible, so
that they can be used safely in threaded applications, when this module
is loaded with a perl that supports this.
The macros are defined to do nothing if the perl doesn't contain working
versions of them. In such perls, the macros are also defined to do
nothing except on configurations that could have races.
Typically, an extra problem is that the libc calls return in a global
static buffer, subject to being overwritten by another thread. But an
earlier commit defined PERL_REENTRANT, which makes those functions
transparently return in a thread-local buffer instead. That doesn't
help if the function gets interrupted by another thread; this commit
completes the process.
Commit: 677ca435f7510429d113aeac650c61e1b5ca50ef
https://github.com/Perl/perl5/commit/677ca435f7510429d113aeac650c61e1b5ca50ef
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
M locale.c
Log Message:
-----------
Implement sv_strftime_tm and sv_strftime_ints
These two functions are designed to free the caller from having to know
anything about the intricacies of handling UTF-8 in using strftime(), as
they take SV inputs and return an SV with the UTF-8 flag appropriately
set.
They differ only in that one takes a bunch of integer arguments that
define the various components of the time; and the other takes a pointer
to a struct tm.
The POSIX implementation of strftime is converted to use these.
Commit: 0e1117e49c389f1a8bca6b50b9408527fe730ce6
https://github.com/Perl/perl5/commit/0e1117e49c389f1a8bca6b50b9408527fe730ce6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_get_locale_string_utf8ness_i: Fix return
If the input is NULL, the utf8ness of the string isn't NO, but actually,
IMMATERIAL, as there is nothing there that matters
Commit: 2ebbb94a5a3a787ceb2ade136843866f3e4c2533
https://github.com/Perl/perl5/commit/2ebbb94a5a3a787ceb2ade136843866f3e4c2533
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid work that would be thrown away
If the caller to this function doesn't care about the UTF-8ness of the
result, no need to calculate it.
Commit: cacea691c7fde0d65c1b0e2e8db93aa1211f37f5
https://github.com/Perl/perl5/commit/cacea691c7fde0d65c1b0e2e8db93aa1211f37f5
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: notes to myself
Commit: 78b119357273ccab7cad7d499ddad0d75f927461
https://github.com/Perl/perl5/commit/78b119357273ccab7cad7d499ddad0d75f927461
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
M t/run/locale.t
Log Message:
-----------
dregs
Commit: 9fe3799ec9154bb856a430e375d8dc4c8cc383e8
https://github.com/Perl/perl5/commit/9fe3799ec9154bb856a430e375d8dc4c8cc383e8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Slightly change wording of DEBUG messages
This makes them more consistent with the other messages in this file.
Commit: 6ebb239dd35c72f859fdde87a396b94fcf1285b6
https://github.com/Perl/perl5/commit/6ebb239dd35c72f859fdde87a396b94fcf1285b6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M util.c
Log Message:
-----------
util.c: Better panic messages
Commit: df9a158b80446d42ddab6cbdaecafe4b7cd9825e
https://github.com/Perl/perl5/commit/df9a158b80446d42ddab6cbdaecafe4b7cd9825e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M win32/Makefile
Log Message:
-----------
win32 Makefile
Commit: 582b8242a062aa8b860baa4de7d26c1b3640809f
https://github.com/Perl/perl5/commit/582b8242a062aa8b860baa4de7d26c1b3640809f
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
Log Message:
-----------
XS-APItest/t/locale.t: Skip tests if pre-req not met
Rather than have them all failing, if the test that tries to set things
up fails, skip the ones that depend on it having succeeded
Commit: 70481ce08d7da5966a6ab8be69e190c5c57d4b3d
https://github.com/Perl/perl5/commit/70481ce08d7da5966a6ab8be69e190c5c57d4b3d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/XS-APItest/t/locale.t
Log Message:
-----------
XS-APItest/t/locale.t: White space only
Indent to correspond with a new block added in the previous commit
Commit: fb4c1eb24e189d062883ed9fdfea944c9452a361
https://github.com/Perl/perl5/commit/fb4c1eb24e189d062883ed9fdfea944c9452a361
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: 19d41684eb9c7b92ebdb27e30b4d7b77122dc278
https://github.com/Perl/perl5/commit/19d41684eb9c7b92ebdb27e30b4d7b77122dc278
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/op/lc.t
Log Message:
-----------
t/op/lc.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: beb4247c98cba4eeedd03dd18fbd74c7fa2127dd
https://github.com/Perl/perl5/commit/beb4247c98cba4eeedd03dd18fbd74c7fa2127dd
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/re/pat.t
Log Message:
-----------
re/pat.t: Avoid duplicate effort
This scalar was being computed twice, and the computation is slow on
Windows.
Commit: 69e4ea4319c0386b73623778890f79a4d9736f2c
https://github.com/Perl/perl5/commit/69e4ea4319c0386b73623778890f79a4d9736f2c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M t/re/pat.t
Log Message:
-----------
re/pat.t: Fix typo in comment
Commit: 39806b378577bbcfb39204329f888a210089b7c6
https://github.com/Perl/perl5/commit/39806b378577bbcfb39204329f888a210089b7c6
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
POSIX/t/time.t: Avoid duplicate effort
By searching for a bigger set of locales first, then looking only within
that set for a restricted set, we avoid scanning twice. This matters on
Windows machines where the scan is slow.
Commit: 26b1597048bc671bea02c2eecf7e22899a0233e9
https://github.com/Perl/perl5/commit/26b1597048bc671bea02c2eecf7e22899a0233e9
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add UNLESS_PERL_MEM_LOG()
This is to be used to wrap code that should not be compiled if
PERL_MEM_LOG is defined. Some things don't play well with that, and
this keeps them from being compiled automatically without extra #ifdefs
Commit: b0c65f4ce4f05f682d5fe36375255f030577570c
https://github.com/Perl/perl5/commit/b0c65f4ce4f05f682d5fe36375255f030577570c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Use UNLESS_PERL_MEM_LOG()
These debugging statements for mutex locking are done at such a low
level that if PERL_MEM_LOG is used, infinite recursion would be
attempted.
Commit: e54921f3bfc69047fe0676169f9c81d11ea4caa3
https://github.com/Perl/perl5/commit/e54921f3bfc69047fe0676169f9c81d11ea4caa3
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M inline.h
Log Message:
-----------
Revert #if 0 in inline.h
I don't remember why this was done
Commit: f0c30e4e6d9318f92fe6a72c8ee0a5c0f99f7411
https://github.com/Perl/perl5/commit/f0c30e4e6d9318f92fe6a72c8ee0a5c0f99f7411
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX why no failures:locale.c: Quit early on failure to set the locale
When trying to set the locale under Windows (only), the code prior to
this commit would continue on to set PL_cur_LC_ALL to NULL, whereas the
failure means nothing changed, so this variable shouldn't either.
Commit: 203540a83a506cffe30f1b8b18a4a713d8022440
https://github.com/Perl/perl5/commit/203540a83a506cffe30f1b8b18a4a713d8022440
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid unnecessary freeing and reallocating
Check first if an interpreter variable has actually changed before
going to the trouble of freeing its memory and reallocating and
populating it.
Commit: 0b4d6dc862e557e0e037a1cb0b8cf06aa98b9127
https://github.com/Perl/perl5/commit/0b4d6dc862e557e0e037a1cb0b8cf06aa98b9127
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Return from win32_setlocale() needs to be stable
Prior to this commit it was subject to freeing when the scope was
exited.
This commit repurposes the already-existing per-thread buffer that holds
the return of setlocale(), stable until the next call to it. Instead of
being used for setlocale() which isn't called directly on Windows
platforms, it uses it for win32_setlocale().
Commit: cb1de6dff28d76fcd4eb9a9cd499d93ce5530caf
https://github.com/Perl/perl5/commit/cb1de6dff28d76fcd4eb9a9cd499d93ce5530caf
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M util.c
M win32/perlhost.h
Log Message:
-----------
XXX Win32 mem log
Commit: 34f31b9f3525c95b07e587a1afa498b88c65940a
https://github.com/Perl/perl5/commit/34f31b9f3525c95b07e587a1afa498b88c65940a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M util.c
Log Message:
-----------
XXX util add thread to mem_log
Commit: 8a33aaa55022e39154ecfe80c6bf54575917b05a
https://github.com/Perl/perl5/commit/8a33aaa55022e39154ecfe80c6bf54575917b05a
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX mv: initialize PL_cur_LC_ALL
Commit: 02e58685cc6ce9eb462e68e0ad9d0dfe36b7c159
https://github.com/Perl/perl5/commit/02e58685cc6ce9eb462e68e0ad9d0dfe36b7c159
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Debug wrap wset
Commit: d43672b7d991e31e11abecb8bcc3c641c67f1b99
https://github.com/Perl/perl5/commit/d43672b7d991e31e11abecb8bcc3c641c67f1b99
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
more dregs
Commit: 979bb6e681ab8eee6a4fee2f442404c8a7192e67
https://github.com/Perl/perl5/commit/979bb6e681ab8eee6a4fee2f442404c8a7192e67
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
f XXX maybe
Commit: 021426a90f7a57fc51c4c62adfb17aa9c90ce91d
https://github.com/Perl/perl5/commit/021426a90f7a57fc51c4c62adfb17aa9c90ce91d
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M regen/unicode_constants.pl
M unicode_constants.h
Log Message:
-----------
regen/unicode_constants.pl: Add Arabic radix
This will be helpful to vutil.c
Commit: bea315ba41663466fdf8d758a5b6445f2013fe07
https://github.com/Perl/perl5/commit/bea315ba41663466fdf8d758a5b6445f2013fe07
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Be sure non-UTF-8 radix isn't UTF-8
In almost all locales in the world, the radix character is a dot or a
comma. Prior to this commit, if a locale was ever used that had a
UTF-8-required radix, the SV that contains the radix would remain UTF-8,
causing anything that included it to also become UTF-8, slowing things
down.
Fortunately, such locales are unlikely to be used in commerce where Perl is
likely to be used. But this commit fixes that.
This problem came up in stress testing Perl using tests that will be
committed later.
Commit: 4d0118403ea407320b890c40e2bfedebade3bb03
https://github.com/Perl/perl5/commit/4d0118403ea407320b890c40e2bfedebade3bb03
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
Perl_force_locale_unlock: Add pTHX parameter
This replaces a dTHX inside the function, which is usable only by the
perl core on platforms that allow hiding functions from external code.
Thus this change should not break any applications.
Commit: fec7d93c12d1442f05b30287382670bcf3d02de8
https://github.com/Perl/perl5/commit/fec7d93c12d1442f05b30287382670bcf3d02de8
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
locale.c: S_save_to_buffer: Add pTHX parameter
This saves doing dTHX inside the function
Commit: 6100cb2b6c1b72b50b42ac46c310966e794e927c
https://github.com/Perl/perl5/commit/6100cb2b6c1b72b50b42ac46c310966e794e927c
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fdregs
Commit: 9ac832ec642e42dc88f11600c55ddbc5ecfed12e
https://github.com/Perl/perl5/commit/9ac832ec642e42dc88f11600c55ddbc5ecfed12e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Win32 also can determine the codeset
This code adds the codeset detail to debugging statements. It didn't
change when the ability to find the codeset on Windows platforms was
added, so the detail was ommited for them, until this commit.
Commit: 27d5f286a42da3f000fb7caa887913731405956e
https://github.com/Perl/perl5/commit/27d5f286a42da3f000fb7caa887913731405956e
Author: Karl Williamson <[email protected]>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Change some -DLv statements to -DL
These debug statements show something isn't quite normal, so shouldn't
require a verbose option to be displayed
Commit: a487f97322b7f083dda9836733ee47a416cf251c
https://github.com/Perl/perl5/commit/a487f97322b7f083dda9836733ee47a416cf251c
Author: Karl Williamson <[email protected]>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M intrpvar.h
M lib/locale_threads.t
M locale.c
M perl.h
M proto.h
Log Message:
-----------
foo
Compare: https://github.com/Perl/perl5/compare/8991bb0495c6...a487f97322b7