Front page | perl.perl5.changes |
Postings from June 2023
[Perl/perl5] 90eaf6: XXX skip croak.t under sanitizer
From:
Karl Williamson via perl5-changes
Date:
June 12, 2023 21:48
Subject:
[Perl/perl5] 90eaf6: XXX skip croak.t under sanitizer
Message ID:
Perl/perl5/push/refs/heads/smoke-me/khw-env/baad94-8991bb@github.com
Branch: refs/heads/smoke-me/khw-env
Home: https://github.com/Perl/perl5
Commit: 90eaf6af6fb781c666ec8d72999f0fb4169239c7
https://github.com/Perl/perl5/commit/90eaf6af6fb781c666ec8d72999f0fb4169239c7
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/harness
Log Message:
-----------
XXX skip croak.t under sanitizer
Commit: 08453a8843a57b30b423096b5079f294c7c018f5
https://github.com/Perl/perl5/commit/08453a8843a57b30b423096b5079f294c7c018f5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: cf2eee03f4be198781b818842f2fe60c4185fd7f
https://github.com/Perl/perl5/commit/cf2eee03f4be198781b818842f2fe60c4185fd7f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 7bcf18bb0ebb306a92dc6c0d790474d6af976b1b
https://github.com/Perl/perl5/commit/7bcf18bb0ebb306a92dc6c0d790474d6af976b1b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/TEST
Log Message:
-----------
XXX skip cpan testing
Commit: 08efa5c4ff3381cab8fc38e0fecc1b0b37aa3b32
https://github.com/Perl/perl5/commit/08efa5c4ff3381cab8fc38e0fecc1b0b37aa3b32
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f90d9125252c2ee8949eb43d7c921fbe13fe8483
https://github.com/Perl/perl5/commit/f90d9125252c2ee8949eb43d7c921fbe13fe8483
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a1d1eb3a8a318464af11025501654e96f2842219
https://github.com/Perl/perl5/commit/a1d1eb3a8a318464af11025501654e96f2842219
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/test.pl
Log Message:
-----------
XXX test.pl: dont unlink temps
Commit: 49b5a381c7da138122c700c8e0ee98a4f6fc8300
https://github.com/Perl/perl5/commit/49b5a381c7da138122c700c8e0ee98a4f6fc8300
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/test.pl
Log Message:
-----------
Revert "XXX test.pl: dont unlink temps"
This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b.
Commit: cbe99cd80714620e45220d6eed6e66284e0d796f
https://github.com/Perl/perl5/commit/cbe99cd80714620e45220d6eed6e66284e0d796f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
run/locale.t: more debug
Commit: fedd93c6f878d589869cecaa48a593456dc1cef9
https://github.com/Perl/perl5/commit/fedd93c6f878d589869cecaa48a593456dc1cef9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
XXX run/locale.t: maybe f move test
Commit: 568a65dd0b47b29e67314fc6439d3a33ddf60be5
https://github.com/Perl/perl5/commit/568a65dd0b47b29e67314fc6439d3a33ddf60be5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f4d611727d777012749afca922d0e742e5463571
https://github.com/Perl/perl5/commit/f4d611727d777012749afca922d0e742e5463571
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 53b08af0a636360f75f19a847e932f334b6125a4
https://github.com/Perl/perl5/commit/53b08af0a636360f75f19a847e932f334b6125a4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil.c: Debug
Commit: d473cab775089a959a947f263bd3b56430ca6eeb
https://github.com/Perl/perl5/commit/d473cab775089a959a947f263bd3b56430ca6eeb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e5d818d69eebbdf3425054e6503e3ad0431d48e2
https://github.com/Perl/perl5/commit/e5d818d69eebbdf3425054e6503e3ad0431d48e2
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c467df77d4e056a97f4f03d9038f98d0edb5b534
https://github.com/Perl/perl5/commit/c467df77d4e056a97f4f03d9038f98d0edb5b534
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e8f05bf60b6e77acf0b2c11377b1daedf3117161
https://github.com/Perl/perl5/commit/e8f05bf60b6e77acf0b2c11377b1daedf3117161
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
f vutil
Commit: 09fce0fb46582389f4345b8df410ee5c0f80cc56
https://github.com/Perl/perl5/commit/09fce0fb46582389f4345b8df410ee5c0f80cc56
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
vutil
Commit: d7e1543ed72a93b9a21a9cc4d1ddd832eabec2cc
https://github.com/Perl/perl5/commit/d7e1543ed72a93b9a21a9cc4d1ddd832eabec2cc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M vutil.c
Log Message:
-----------
f vutil
Commit: b612fb5f116554ac1a37349f07dd3afea6315684
https://github.com/Perl/perl5/commit/b612fb5f116554ac1a37349f07dd3afea6315684
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8fa8162af32a42ab858f334b4020650a12c8e4d3
https://github.com/Perl/perl5/commit/8fa8162af32a42ab858f334b4020650a12c8e4d3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 3d3540c7fc7cd509a0a0f35301dbe2c16884e6ad
https://github.com/Perl/perl5/commit/3d3540c7fc7cd509a0a0f35301dbe2c16884e6ad
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M cpan/Archive-Tar/t/02_methods.t
Log Message:
-----------
XXX skip Archive-Tar because of symlinks
Commit: 624f0c7b47e7e66ca417309429010e0776cc261e
https://github.com/Perl/perl5/commit/624f0c7b47e7e66ca417309429010e0776cc261e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/porting/cmp_version.t
Log Message:
-----------
XXX skip cmp_version.t because of sym links
Commit: e3d7597705b89824a0dd376cb088ae5067e24d14
https://github.com/Perl/perl5/commit/e3d7597705b89824a0dd376cb088ae5067e24d14
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
XXX temp to test broken lconv on non-Windows
Commit: 1c433dc9128d73a88b3f0cc2e5b47cba3abdd112
https://github.com/Perl/perl5/commit/1c433dc9128d73a88b3f0cc2e5b47cba3abdd112
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 113b7dc022e0621b63f863efec392b1187053934
https://github.com/Perl/perl5/commit/113b7dc022e0621b63f863efec392b1187053934
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M Configure
Log Message:
-----------
XXX Configure temporary to get no_nl, etc working
Commit: e2595d47e4129c68755774a447ebfa9327ffb7cb
https://github.com/Perl/perl5/commit/e2595d47e4129c68755774a447ebfa9327ffb7cb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M win32/config_H.gc
M win32/config_H.vc
Log Message:
-----------
Regenerate Configure after metaconfig backports applied
Commit: 98db1346fb09c43a2b68820af982dafc09a26102
https://github.com/Perl/perl5/commit/98db1346fb09c43a2b68820af982dafc09a26102
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: fa4a300e88b9e05db263651476773758e289fc55
https://github.com/Perl/perl5/commit/fa4a300e88b9e05db263651476773758e289fc55
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c0271741d0a917ee82017e9c701958e6f7c65385
https://github.com/Perl/perl5/commit/c0271741d0a917ee82017e9c701958e6f7c65385
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 156bfa0feb214d0a8484f2bdef71516899e9ce5b
https://github.com/Perl/perl5/commit/156bfa0feb214d0a8484f2bdef71516899e9ce5b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: faf4bbe8870b665d1c4e33e58d802fbf00ddbed9
https://github.com/Perl/perl5/commit/faf4bbe8870b665d1c4e33e58d802fbf00ddbed9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M intrpvar.h
M perl.h
Log Message:
-----------
perl.h: Create a locale mnemonic #define for sync across files
Commit: c0efd29769eb0d7dc01d488cd07a66143b047138
https://github.com/Perl/perl5/commit/c0efd29769eb0d7dc01d488cd07a66143b047138
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
M perl.h
Log Message:
-----------
XXX temporary: undef LC_ALL
Commit: 9f85349a5c02025aab289cf6991d31eee950615e
https://github.com/Perl/perl5/commit/9f85349a5c02025aab289cf6991d31eee950615e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Fake up win32 compile a bit
Commit: 56b6f2443f864457bf96d4ef39c7e46684f1b202
https://github.com/Perl/perl5/commit/56b6f2443f864457bf96d4ef39c7e46684f1b202
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
ruler
Commit: ec3763e6d134187a15d0b66d21d96bbae1d65a48
https://github.com/Perl/perl5/commit/ec3763e6d134187a15d0b66d21d96bbae1d65a48
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: db81263deeb4b94b3a83d14752cc8ec1767b8b57
https://github.com/Perl/perl5/commit/db81263deeb4b94b3a83d14752cc8ec1767b8b57
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 63f7160cc09d173cbf180c3d8480827940fbb4dc
https://github.com/Perl/perl5/commit/63f7160cc09d173cbf180c3d8480827940fbb4dc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2d1e2b5a7c8f1966d7e936f55c1ca6fa4bf35cd3
https://github.com/Perl/perl5/commit/2d1e2b5a7c8f1966d7e936f55c1ca6fa4bf35cd3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6ce9d34c2e6c5e957c7f460f8371d5d639384f70
https://github.com/Perl/perl5/commit/6ce9d34c2e6c5e957c7f460f8371d5d639384f70
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
DEBUG_
Commit: 983786e2fee39f386f21ff42868c25adcdc381b6
https://github.com/Perl/perl5/commit/983786e2fee39f386f21ff42868c25adcdc381b6
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: ecfd005a88f867d834df5298722c4f1e2e6f1c79
https://github.com/Perl/perl5/commit/ecfd005a88f867d834df5298722c4f1e2e6f1c79
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: debug with thread id
Commit: a1326dae3b9951622ff29a1c99d667e58bf0a5d6
https://github.com/Perl/perl5/commit/a1326dae3b9951622ff29a1c99d667e58bf0a5d6
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
M util.c
Log Message:
-----------
XXX memlog
Commit: 50a79468c3bd77c3d42dfba34c90bb4611d20f02
https://github.com/Perl/perl5/commit/50a79468c3bd77c3d42dfba34c90bb4611d20f02
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX win workaround
Commit: 37ddf7d5a7c2587be78cce0331f45c4e2795aeaf
https://github.com/Perl/perl5/commit/37ddf7d5a7c2587be78cce0331f45c4e2795aeaf
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
just after XXX win workaround
Commit: ca5813eec0357b47f176f82f5cea9b8221e3aff5
https://github.com/Perl/perl5/commit/ca5813eec0357b47f176f82f5cea9b8221e3aff5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M lib/locale_threads.t
M t/run/locale.t
Log Message:
-----------
locale_threads
Commit: 6f03babd7fe51f6ad5167486cc0bf9661af8dff0
https://github.com/Perl/perl5/commit/6f03babd7fe51f6ad5167486cc0bf9661af8dff0
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Debug locking
Commit: 837926d96ae4e0fae696645c6d7ad225e029cdbc
https://github.com/Perl/perl5/commit/837926d96ae4e0fae696645c6d7ad225e029cdbc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
M t/run/switchDx.t
Log Message:
-----------
debug thread
Commit: e1881e5fe53ccb6621d05550f0eafbbccf4cc147
https://github.com/Perl/perl5/commit/e1881e5fe53ccb6621d05550f0eafbbccf4cc147
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M dist/threads/threads.xs
M inline.h
Log Message:
-----------
threads.xs DEBUG_U
Commit: 64d531eea80f1b2b21a12d87ddfb8b5db031576c
https://github.com/Perl/perl5/commit/64d531eea80f1b2b21a12d87ddfb8b5db031576c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 22902c5e70b27aa6207b9919e758620ee3e20b9f
https://github.com/Perl/perl5/commit/22902c5e70b27aa6207b9919e758620ee3e20b9f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
loc_tools
Commit: caddaecac74f24a8131957b05b845e1eaa8ed3ce
https://github.com/Perl/perl5/commit/caddaecac74f24a8131957b05b845e1eaa8ed3ce
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/loc_tools.pl
Log Message:
-----------
XXX t/loc_tools.pl: Temp debug
Commit: c9becbd5e3435f8a34f89654b97fb1df89785e5a
https://github.com/Perl/perl5/commit/c9becbd5e3435f8a34f89654b97fb1df89785e5a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: bf1c7279cf5e8bf70de0b190f1bfcbcc24a607c1
https://github.com/Perl/perl5/commit/bf1c7279cf5e8bf70de0b190f1bfcbcc24a607c1
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 4e723b7c78708df114cae9928e3e58c73b747d6f
https://github.com/Perl/perl5/commit/4e723b7c78708df114cae9928e3e58c73b747d6f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2582fec98fa3109ba687a73c7c3294dbef6ba3fb
https://github.com/Perl/perl5/commit/2582fec98fa3109ba687a73c7c3294dbef6ba3fb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 4249a902e8153731a485bfb7bb91930683c3d457
https://github.com/Perl/perl5/commit/4249a902e8153731a485bfb7bb91930683c3d457
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: White space, comments only
Commit: 4003e93db7f56b4a3838111052e62a64c49c9c68
https://github.com/Perl/perl5/commit/4003e93db7f56b4a3838111052e62a64c49c9c68
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h change lock debugging text
Commit: 2e76d952f555ebf0b5a3f290593f9d5124e20b2e
https://github.com/Perl/perl5/commit/2e76d952f555ebf0b5a3f290593f9d5124e20b2e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/harness
Log Message:
-----------
XXX t/harness temp tweaks
Commit: 954a50c13499d0e6bc1f001ee04002ce0cd3995b
https://github.com/Perl/perl5/commit/954a50c13499d0e6bc1f001ee04002ce0cd3995b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M pod/perllocale.pod
Log Message:
-----------
perllocale Xxx start of changes
Commit: 65e20a115501527378fa2824e2baba6f12bb96da
https://github.com/Perl/perl5/commit/65e20a115501527378fa2824e2baba6f12bb96da
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M hints/freebsd.sh
M hints/openbsd.sh
Log Message:
-----------
XXX try out bsd 2008
Commit: a0c927a7d72425624521bd8195062454363bedae
https://github.com/Perl/perl5/commit/a0c927a7d72425624521bd8195062454363bedae
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c81997d311cba31df818d5dfe5f76e3e6bf86731
https://github.com/Perl/perl5/commit/c81997d311cba31df818d5dfe5f76e3e6bf86731
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 763c909cda9610d36ea5ea7b6b6f71e6811d748d
https://github.com/Perl/perl5/commit/763c909cda9610d36ea5ea7b6b6f71e6811d748d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
XXX temp: lib/locale.t: debug
Commit: 00776c693a1ecc4a40d3f6dfccb1e6b6d9544588
https://github.com/Perl/perl5/commit/00776c693a1ecc4a40d3f6dfccb1e6b6d9544588
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t FILE debug
Commit: 072e6ac4a95637f67f18928fd8911dadceca4861
https://github.com/Perl/perl5/commit/072e6ac4a95637f67f18928fd8911dadceca4861
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M lib/locale.t
Log Message:
-----------
lib/locale.t
Commit: ec28d0529516a8c95e0c1a489211c375b674f5d5
https://github.com/Perl/perl5/commit/ec28d0529516a8c95e0c1a489211c375b674f5d5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M pod/perlhacktips.pod
Log Message:
-----------
XXX incomplete perlhacktips:
Commit: 52f08522fe685454267d338866bae57cf6785875
https://github.com/Perl/perl5/commit/52f08522fe685454267d338866bae57cf6785875
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M handy.h
Log Message:
-----------
XXX cygwin debugging small macro buf
Commit: b911c85eaab6197a671ccf17735f0ae84160558c
https://github.com/Perl/perl5/commit/b911c85eaab6197a671ccf17735f0ae84160558c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M iperlsys.h
Log Message:
-----------
iperlsys.h: TODO need to look at adding mutexes
Commit: 829092aec4d4647178dea4fb6152b86b77f60442
https://github.com/Perl/perl5/commit/829092aec4d4647178dea4fb6152b86b77f60442
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M regen/reentr.pl
Log Message:
-----------
reentr.pl: XXX about needing mutex
Commit: 9a74d12d1940a2ab5b359f125089db5951aa5b82
https://github.com/Perl/perl5/commit/9a74d12d1940a2ab5b359f125089db5951aa5b82
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M regexec.c
Log Message:
-----------
regexec.c: XXX has cast to U8 for some reason
Commit: 062df16f9f85c96a358a3827a6b197374ee56504
https://github.com/Perl/perl5/commit/062df16f9f85c96a358a3827a6b197374ee56504
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M sv.c
Log Message:
-----------
perlapi: Combine sv_eq(), sv_eq_flags() entries
Commit: 159a199037ba00c6f0e436dcc36611a10ddc774f
https://github.com/Perl/perl5/commit/159a199037ba00c6f0e436dcc36611a10ddc774f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M dist/ExtUtils-ParseXS/lib/perlxs.pod
M t/porting/known_pod_issues.dat
Log Message:
-----------
perlxs
Commit: 8c1dd7bad4f3fb43506e8b82bc8dd185457024f0
https://github.com/Perl/perl5/commit/8c1dd7bad4f3fb43506e8b82bc8dd185457024f0
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 59923148fa52a7f9c706eebc7fa0578d9bbeaab1
https://github.com/Perl/perl5/commit/59923148fa52a7f9c706eebc7fa0578d9bbeaab1
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M pp.c
Log Message:
-----------
Debug Windows memory usage in pp_study
Commit: a7f6f66d6caa4003bcb2ee02c28406b64be31ff8
https://github.com/Perl/perl5/commit/a7f6f66d6caa4003bcb2ee02c28406b64be31ff8
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M pod/perlmod.pod
Log Message:
-----------
perlmod
Commit: 047000b584911ccd48925521a9b17f6108a6be0d
https://github.com/Perl/perl5/commit/047000b584911ccd48925521a9b17f6108a6be0d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
XXX perl.h: Debugging mutex lock'
Commit: fe4cccc972ea4015a8c73ca414e6bab0226ccdff
https://github.com/Perl/perl5/commit/fe4cccc972ea4015a8c73ca414e6bab0226ccdff
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 15f12b2d92a5d14a58b28b92542cfa6bb4f6032c
https://github.com/Perl/perl5/commit/15f12b2d92a5d14a58b28b92542cfa6bb4f6032c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 93ad217002401ca5753dfc0cdae4b9f9c9762992
https://github.com/Perl/perl5/commit/93ad217002401ca5753dfc0cdae4b9f9c9762992
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e23e352c9dc771251acc455330cbac6960971f8f
https://github.com/Perl/perl5/commit/e23e352c9dc771251acc455330cbac6960971f8f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2aafa199949c8bcc2e7068c644e34944fbce414d
https://github.com/Perl/perl5/commit/2aafa199949c8bcc2e7068c644e34944fbce414d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 1ac019fce5b0ebe14e8dfd46d47c233536778238
https://github.com/Perl/perl5/commit/1ac019fce5b0ebe14e8dfd46d47c233536778238
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2f175779e9e7a090cc53ee922aae2779da2fabf4
https://github.com/Perl/perl5/commit/2f175779e9e7a090cc53ee922aae2779da2fabf4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f6cfd112f12a5ad54d5e2096e7e9bc193173b44b
https://github.com/Perl/perl5/commit/f6cfd112f12a5ad54d5e2096e7e9bc193173b44b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M embed.fnc
M proto.h
Log Message:
-----------
locale.c: Add warning if function return ignored
Commit: 44971d84004892f87a9a92dd8a88aba2d9c03334
https://github.com/Perl/perl5/commit/44971d84004892f87a9a92dd8a88aba2d9c03334
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 5d547548ec60f11fcab211e86a168d03c4743d22
https://github.com/Perl/perl5/commit/5d547548ec60f11fcab211e86a168d03c4743d22
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: fb96a68bbbd45b6a56a4714994358d41ee68c7fd
https://github.com/Perl/perl5/commit/fb96a68bbbd45b6a56a4714994358d41ee68c7fd
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b955800a31f8b2fef6250ece74ca4cfc9d08461a
https://github.com/Perl/perl5/commit/b955800a31f8b2fef6250ece74ca4cfc9d08461a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 569b8596d775e6d7898c39ec101de60466784fcd
https://github.com/Perl/perl5/commit/569b8596d775e6d7898c39ec101de60466784fcd
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f74c00bb7cd7c0b0b2e3f7ddb61c2bfb2023c06d
https://github.com/Perl/perl5/commit/f74c00bb7cd7c0b0b2e3f7ddb61c2bfb2023c06d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 375a54309a36723b52b5c561644604d21a12380f
https://github.com/Perl/perl5/commit/375a54309a36723b52b5c561644604d21a12380f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 3b8ba98d8611b0e60cd215c5275edd81ee2893f5
https://github.com/Perl/perl5/commit/3b8ba98d8611b0e60cd215c5275edd81ee2893f5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 41f7624552b4ea0202df35b280d8a55ade115ab0
https://github.com/Perl/perl5/commit/41f7624552b4ea0202df35b280d8a55ade115ab0
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: be899aeb5f2a8170fef58d6f3912dcf861085610
https://github.com/Perl/perl5/commit/be899aeb5f2a8170fef58d6f3912dcf861085610
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e9d30ba886c76c492b4c8ddf954a0e5d8fbf5488
https://github.com/Perl/perl5/commit/e9d30ba886c76c492b4c8ddf954a0e5d8fbf5488
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 98fbb5d310a1548c1107a7e98da35ae5ab4a3b2a
https://github.com/Perl/perl5/commit/98fbb5d310a1548c1107a7e98da35ae5ab4a3b2a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a8db8b8a41e2b7e65f457651dbbe2316210ba726
https://github.com/Perl/perl5/commit/a8db8b8a41e2b7e65f457651dbbe2316210ba726
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 01f2f2d67fdd85064b0d3dd03e1cf114430b8ca9
https://github.com/Perl/perl5/commit/01f2f2d67fdd85064b0d3dd03e1cf114430b8ca9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 345f0e8b5ff4f371294f5a3d7f1514bc004e74a8
https://github.com/Perl/perl5/commit/345f0e8b5ff4f371294f5a3d7f1514bc004e74a8
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 4397b1ba39ca1b3a4a0e6472336c0221a09a7eea
https://github.com/Perl/perl5/commit/4397b1ba39ca1b3a4a0e6472336c0221a09a7eea
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8b618791074d570c604f10118fec318d33d8421e
https://github.com/Perl/perl5/commit/8b618791074d570c604f10118fec318d33d8421e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 7889acaaeb75d1b10ccc5eca7aca30097fecdbfb
https://github.com/Perl/perl5/commit/7889acaaeb75d1b10ccc5eca7aca30097fecdbfb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 928decc93bbd6218ca74320ec975025421bb92dc
https://github.com/Perl/perl5/commit/928decc93bbd6218ca74320ec975025421bb92dc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_toggle_locale_i: Move some assert()s, initialization
Commit: 883947a8d5904e43041e2d18ffc151e931ec2bb4
https://github.com/Perl/perl5/commit/883947a8d5904e43041e2d18ffc151e931ec2bb4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a75a0c94ccd4523c3d6c50baab66e6fe8bf01cf9
https://github.com/Perl/perl5/commit/a75a0c94ccd4523c3d6c50baab66e6fe8bf01cf9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e1c4cb07de718f8c41f7dac7689e59c4e66ed6f3
https://github.com/Perl/perl5/commit/e1c4cb07de718f8c41f7dac7689e59c4e66ed6f3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 90223848a044d66ebcc67b813e7e504ef0997533
https://github.com/Perl/perl5/commit/90223848a044d66ebcc67b813e7e504ef0997533
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 5f816b581e921110120a025b8873b7d378fc57ba
https://github.com/Perl/perl5/commit/5f816b581e921110120a025b8873b7d378fc57ba
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 1a2ba27c0dc3b6da72b8e5c2e4efdeffff017b9f
https://github.com/Perl/perl5/commit/1a2ba27c0dc3b6da72b8e5c2e4efdeffff017b9f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d3365b989db1863e723a2829addb3341b437d558
https://github.com/Perl/perl5/commit/d3365b989db1863e723a2829addb3341b437d558
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 34663f32cd58d4542974b827c84b4ff8184e4ede
https://github.com/Perl/perl5/commit/34663f32cd58d4542974b827c84b4ff8184e4ede
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 18d9b6b11dd7fc4d35f0c29a7d8fdb6c3e26c83e
https://github.com/Perl/perl5/commit/18d9b6b11dd7fc4d35f0c29a7d8fdb6c3e26c83e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 06a63ac4f44639c8abe304243bf1dfdf7e4592f9
https://github.com/Perl/perl5/commit/06a63ac4f44639c8abe304243bf1dfdf7e4592f9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a575832693537c0bf45204a6782a5c51ba3d0706
https://github.com/Perl/perl5/commit/a575832693537c0bf45204a6782a5c51ba3d0706
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d85043a47b4d69f78f8a51094f451093c0e68f8b
https://github.com/Perl/perl5/commit/d85043a47b4d69f78f8a51094f451093c0e68f8b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 94c14f805df3470dab9dc0dd344e26a7f97f9141
https://github.com/Perl/perl5/commit/94c14f805df3470dab9dc0dd344e26a7f97f9141
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f4b59b38b304fba0eeb2e10ac5a8f59770fd6092
https://github.com/Perl/perl5/commit/f4b59b38b304fba0eeb2e10ac5a8f59770fd6092
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9b30a227628e031b2d4561a9ff1a9ff0d0e45c32
https://github.com/Perl/perl5/commit/9b30a227628e031b2d4561a9ff1a9ff0d0e45c32
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 5446e0628e3d513087bb8d89a7b4afbc8008376f
https://github.com/Perl/perl5/commit/5446e0628e3d513087bb8d89a7b4afbc8008376f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 710445bbdad37780a1d2e069b026a329ca899cbf
https://github.com/Perl/perl5/commit/710445bbdad37780a1d2e069b026a329ca899cbf
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a #define, and add a comment
Commit: daaaa31d06d5d5c30d60cdef6334a8f43ad59eba
https://github.com/Perl/perl5/commit/daaaa31d06d5d5c30d60cdef6334a8f43ad59eba
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6e8999d4ac8e107c196ee72548457eaa475b77de
https://github.com/Perl/perl5/commit/6e8999d4ac8e107c196ee72548457eaa475b77de
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8424923c781d3699294a1df6e6042f252abe216a
https://github.com/Perl/perl5/commit/8424923c781d3699294a1df6e6042f252abe216a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move two helper functions for POSIX 2008 implementation
Commit: dc30cc8ec400d0c5ff023cf0c59b12c5b04cb513
https://github.com/Perl/perl5/commit/dc30cc8ec400d0c5ff023cf0c59b12c5b04cb513
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d19d724c1bb164c6b25d28871b2a053ef2380120
https://github.com/Perl/perl5/commit/d19d724c1bb164c6b25d28871b2a053ef2380120
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 5eaa2d2e91a16f1d72c7be56775c7a4fa066fb77
https://github.com/Perl/perl5/commit/5eaa2d2e91a16f1d72c7be56775c7a4fa066fb77
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b25d30328111420f3e8a984001a6d8321674b526
https://github.com/Perl/perl5/commit/b25d30328111420f3e8a984001a6d8321674b526
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9db357dd6c9b4533808739c019cdb610797fb468
https://github.com/Perl/perl5/commit/9db357dd6c9b4533808739c019cdb610797fb468
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c, perl.h: comments, white space
Commit: fca2ff76ccc1619ad26be88f9d3c09a1106723d7
https://github.com/Perl/perl5/commit/fca2ff76ccc1619ad26be88f9d3c09a1106723d7
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d1fe78d6b48c3f0b6a31128e258d9cfb48857833
https://github.com/Perl/perl5/commit/d1fe78d6b48c3f0b6a31128e258d9cfb48857833
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f4bb57de73ca8700f803f0572d7a603131b930d9
https://github.com/Perl/perl5/commit/f4bb57de73ca8700f803f0572d7a603131b930d9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 56f8f4d046c0a740438786d26b2a7024c5408b6c
https://github.com/Perl/perl5/commit/56f8f4d046c0a740438786d26b2a7024c5408b6c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: dc21d7bbf1cfa0e01003712cc058a9a00b9dc35f
https://github.com/Perl/perl5/commit/dc21d7bbf1cfa0e01003712cc058a9a00b9dc35f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e9ca09e206381bf69ac16a3a074e7ff65c68f0cc
https://github.com/Perl/perl5/commit/e9ca09e206381bf69ac16a3a074e7ff65c68f0cc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0f838edfc23d7fd38e5125156bd7d14fbc1431fb
https://github.com/Perl/perl5/commit/0f838edfc23d7fd38e5125156bd7d14fbc1431fb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 43de34de429607e7ed67f020ff3b823b05476890
https://github.com/Perl/perl5/commit/43de34de429607e7ed67f020ff3b823b05476890
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M hints/aix.sh
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: 5f13a4e3a29ab60fba11bafec0c7677e87a00dc5
https://github.com/Perl/perl5/commit/5f13a4e3a29ab60fba11bafec0c7677e87a00dc5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
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: 11815e81c3027f112d92eb52a79fbceeae73811a
https://github.com/Perl/perl5/commit/11815e81c3027f112d92eb52a79fbceeae73811a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d92bee3f7288a60162940c86b68e3355fe9d66ff
https://github.com/Perl/perl5/commit/d92bee3f7288a60162940c86b68e3355fe9d66ff
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b9af5aa4bea11fd4c675f644e12da64ad39b4fc5
https://github.com/Perl/perl5/commit/b9af5aa4bea11fd4c675f644e12da64ad39b4fc5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move a macro definition earlier in the file
Commit: 52905e2de990aa876d03ac1302911a4d22e8a856
https://github.com/Perl/perl5/commit/52905e2de990aa876d03ac1302911a4d22e8a856
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: define HAS_EXTENDED_OS_ERRNO
on the systms that have it.
Commit: a69ea190c1d6f4f11e641388815c6779740e63c6
https://github.com/Perl/perl5/commit/a69ea190c1d6f4f11e641388815c6779740e63c6
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a7db88024daacbd86d3c170fbdd97eb2e47d0266
https://github.com/Perl/perl5/commit/a7db88024daacbd86d3c170fbdd97eb2e47d0266
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Only define string constant on platforms that need it
Commit: cb9a4bfd39f9125fad62bcc7cccbc2778831ff0d
https://github.com/Perl/perl5/commit/cb9a4bfd39f9125fad62bcc7cccbc2778831ff0d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 707f77e9cc318e152761c429eeb5d90e0e8b1605
https://github.com/Perl/perl5/commit/707f77e9cc318e152761c429eeb5d90e0e8b1605
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: bf782047d2368e060e4e9cce388c9e6c37768356
https://github.com/Perl/perl5/commit/bf782047d2368e060e4e9cce388c9e6c37768356
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0c349eb804c551a3b463bbf249377d91e28b2046
https://github.com/Perl/perl5/commit/0c349eb804c551a3b463bbf249377d91e28b2046
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: ddcd808820cb68fcef6da51c478103286881d123
https://github.com/Perl/perl5/commit/ddcd808820cb68fcef6da51c478103286881d123
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8193acee50bb8b91b8083aa45438380fb184738a
https://github.com/Perl/perl5/commit/8193acee50bb8b91b8083aa45438380fb184738a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 73366785d575ab1996aa92a322fe017545b7db1d
https://github.com/Perl/perl5/commit/73366785d575ab1996aa92a322fe017545b7db1d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: bdfcf27051bfc352e37bab6d4879ff9a5213bfaf
https://github.com/Perl/perl5/commit/bdfcf27051bfc352e37bab6d4879ff9a5213bfaf
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M utf8.h
Log Message:
-----------
silence utf8.h warning
Commit: aaf466418e436d4f30fe9f965931cbdb53a4b02e
https://github.com/Perl/perl5/commit/aaf466418e436d4f30fe9f965931cbdb53a4b02e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 66131277ba938e941cd7ef90fdfd781b153241f0
https://github.com/Perl/perl5/commit/66131277ba938e941cd7ef90fdfd781b153241f0
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: ea90cd702708209e85edf0928b1069fddcbb3246
https://github.com/Perl/perl5/commit/ea90cd702708209e85edf0928b1069fddcbb3246
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Don't over allocate array
This previously added an extraneous unused element.
Commit: 3e8d44ccf6095ee9003321501805f64139673d96
https://github.com/Perl/perl5/commit/3e8d44ccf6095ee9003321501805f64139673d96
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2a61e9e200305dbf5eb0635c928f1750ccc4555f
https://github.com/Perl/perl5/commit/2a61e9e200305dbf5eb0635c928f1750ccc4555f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6391ccca3ae1369ca841f4abd197439731b66eab
https://github.com/Perl/perl5/commit/6391ccca3ae1369ca841f4abd197439731b66eab
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 98d7ff50986f2849b04ea063819611175e597e8b
https://github.com/Perl/perl5/commit/98d7ff50986f2849b04ea063819611175e597e8b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: cfa5d350759baa8a4110de855dbab8e29e0dda86
https://github.com/Perl/perl5/commit/cfa5d350759baa8a4110de855dbab8e29e0dda86
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a83f85d42ad48c4ffb688cf1cfe7a76191d97e46
https://github.com/Perl/perl5/commit/a83f85d42ad48c4ffb688cf1cfe7a76191d97e46
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_find_locale_from_environment(): Add comments
Commit: 9940691816af11b605dcde41b226714aa638ff80
https://github.com/Perl/perl5/commit/9940691816af11b605dcde41b226714aa638ff80
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f341aa56a0fdaca55a7d3ca6ae36a3df6769e80b
https://github.com/Perl/perl5/commit/f341aa56a0fdaca55a7d3ca6ae36a3df6769e80b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b53cbb946f0e7ed228609910415088c7cabf898d
https://github.com/Perl/perl5/commit/b53cbb946f0e7ed228609910415088c7cabf898d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 4d2340a410e9ebb2fc85147816a3b2e4c40442c9
https://github.com/Perl/perl5/commit/4d2340a410e9ebb2fc85147816a3b2e4c40442c9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_bool_setlocale_2008_i: Improve debug statements
Commit: ddc7a8399a1073e0b5dc3478217d9bc6d109dd76
https://github.com/Perl/perl5/commit/ddc7a8399a1073e0b5dc3478217d9bc6d109dd76
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9448a09e42c36b722e84f92b6896d5344c63e984
https://github.com/Perl/perl5/commit/9448a09e42c36b722e84f92b6896d5344c63e984
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 242033265959bdfe57e72acd984a24d59ce4a1ea
https://github.com/Perl/perl5/commit/242033265959bdfe57e72acd984a24d59ce4a1ea
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Move declaration closer to first use
Commit: ac889e77c85d93e696f74ceb07fd7c94ebfcf764
https://github.com/Perl/perl5/commit/ac889e77c85d93e696f74ceb07fd7c94ebfcf764
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 59eacabc924049238b5126069f36ab7ce69a7194
https://github.com/Perl/perl5/commit/59eacabc924049238b5126069f36ab7ce69a7194
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: a4f0f07ea38523a272b1d0dde362ac7e3519109d
https://github.com/Perl/perl5/commit/a4f0f07ea38523a272b1d0dde362ac7e3519109d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 30a8a8fa2ed5862b6d9ee87eb2a89527e943e37b
https://github.com/Perl/perl5/commit/30a8a8fa2ed5862b6d9ee87eb2a89527e943e37b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 70a2c3ce76fdd770229968a96ed6a56936b76f0a
https://github.com/Perl/perl5/commit/70a2c3ce76fdd770229968a96ed6a56936b76f0a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f6fc4d8b1b15e56ee7cea4105ccffbe8bacf7e4c
https://github.com/Perl/perl5/commit/f6fc4d8b1b15e56ee7cea4105ccffbe8bacf7e4c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
M perl.h
Log Message:
-----------
locale.c: Update comments, white-space in 2 functions
Commit: 4ce1dfbab058cac1f63eef253308ae7efd28a305
https://github.com/Perl/perl5/commit/4ce1dfbab058cac1f63eef253308ae7efd28a305
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 46d029d0af763da163b93f60e0cd6f21abfa460f
https://github.com/Perl/perl5/commit/46d029d0af763da163b93f60e0cd6f21abfa460f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: fd219e10ee4666e5dcabfaad8f25e7949c9dccb4
https://github.com/Perl/perl5/commit/fd219e10ee4666e5dcabfaad8f25e7949c9dccb4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 3ff5484eda06638203b21b01b91206b24c0683b7
https://github.com/Perl/perl5/commit/3ff5484eda06638203b21b01b91206b24c0683b7
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 21cbade2cf57cf32dfa9b30198dcc868887fc730
https://github.com/Perl/perl5/commit/21cbade2cf57cf32dfa9b30198dcc868887fc730
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9f315aee462194c02df155b582dd35a69f6af826
https://github.com/Perl/perl5/commit/9f315aee462194c02df155b582dd35a69f6af826
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 84968920848aec76d35ec114d190ffd26c9e97fa
https://github.com/Perl/perl5/commit/84968920848aec76d35ec114d190ffd26c9e97fa
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b3825d3f483c9ed3dedebb2a8f207119f4fa30fa
https://github.com/Perl/perl5/commit/b3825d3f483c9ed3dedebb2a8f207119f4fa30fa
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9defff628bb7c7b89d4be76657aecc3db5ea75e3
https://github.com/Perl/perl5/commit/9defff628bb7c7b89d4be76657aecc3db5ea75e3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Avoid a duplicate conditional
Commit: 9c268dbb33a2941b30a77e11eee3f1ea06d488fc
https://github.com/Perl/perl5/commit/9c268dbb33a2941b30a77e11eee3f1ea06d488fc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Initialize PL_cur_locale_obj
Commit: e2145ea8080c702a41a9d329ff572454171fc69a
https://github.com/Perl/perl5/commit/e2145ea8080c702a41a9d329ff572454171fc69a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: db2e8c62ffba12f4dd28c3fdcdb742b855c64d56
https://github.com/Perl/perl5/commit/db2e8c62ffba12f4dd28c3fdcdb742b855c64d56
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 3eb2fa80198647a995847c46d5d08b830eb92c81
https://github.com/Perl/perl5/commit/3eb2fa80198647a995847c46d5d08b830eb92c81
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d92ba6af5f2fe2352bac88da16834b7071fab961
https://github.com/Perl/perl5/commit/d92ba6af5f2fe2352bac88da16834b7071fab961
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0857c7f461772ca72f058695bf85b9fb6e23638b
https://github.com/Perl/perl5/commit/0857c7f461772ca72f058695bf85b9fb6e23638b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: ee298483360f93a2536b7d7fbf98d1a78c35faa4
https://github.com/Perl/perl5/commit/ee298483360f93a2536b7d7fbf98d1a78c35faa4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8292e2c126ed9f2de6438cff069d63f6eb503e6c
https://github.com/Perl/perl5/commit/8292e2c126ed9f2de6438cff069d63f6eb503e6c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 41c67133ad371159507ca47a6faa8207dca22b07
https://github.com/Perl/perl5/commit/41c67133ad371159507ca47a6faa8207dca22b07
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: dba6cb9d5d48ce734164dbe117f343133258f9a2
https://github.com/Perl/perl5/commit/dba6cb9d5d48ce734164dbe117f343133258f9a2
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Remove no longer used macro
Commit: 4d0d4cd2489c9b6d01355a85831479a76c8208b3
https://github.com/Perl/perl5/commit/4d0d4cd2489c9b6d01355a85831479a76c8208b3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9443409aa0391c09005d10a97025ee4307954ed2
https://github.com/Perl/perl5/commit/9443409aa0391c09005d10a97025ee4307954ed2
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: fae12384eb5991dc9815e55a000d85988b96e799
https://github.com/Perl/perl5/commit/fae12384eb5991dc9815e55a000d85988b96e799
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
savepv if threaded, unused I think
Commit: b3e893a6eeb2ecc798f47b4bc4053a7f85a01327
https://github.com/Perl/perl5/commit/b3e893a6eeb2ecc798f47b4bc4053a7f85a01327
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
locale.c: Rmv unexecuted statement after croak
Commit: 168b4dfa2984320b74d98a5eb299326ff9a61722
https://github.com/Perl/perl5/commit/168b4dfa2984320b74d98a5eb299326ff9a61722
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6395b433216047a18aa5b6af51ed9b1d3b5b9ef7
https://github.com/Perl/perl5/commit/6395b433216047a18aa5b6af51ed9b1d3b5b9ef7
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX introductory file comments
Commit: 6dffac33e9195d92b3d5e60c810ae2a82e9f8540
https://github.com/Perl/perl5/commit/6dffac33e9195d92b3d5e60c810ae2a82e9f8540
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 24494ee11cb6418087d8c83a4091a53b7574ca48
https://github.com/Perl/perl5/commit/24494ee11cb6418087d8c83a4091a53b7574ca48
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 79fc29d8c768a67a67eec05f15138c7f8ba6a9be
https://github.com/Perl/perl5/commit/79fc29d8c768a67a67eec05f15138c7f8ba6a9be
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0c030546fafa41652ad5c5d1bf42a6a80a215ffc
https://github.com/Perl/perl5/commit/0c030546fafa41652ad5c5d1bf42a6a80a215ffc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 65bcc855116f56132fde97d1d405689b11069c50
https://github.com/Perl/perl5/commit/65bcc855116f56132fde97d1d405689b11069c50
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b8bb906e399e12541e74f9f288a56d21bc9a2b0e
https://github.com/Perl/perl5/commit/b8bb906e399e12541e74f9f288a56d21bc9a2b0e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f81ee3612ea1e977493cca919544f325be07d9d9
https://github.com/Perl/perl5/commit/f81ee3612ea1e977493cca919544f325be07d9d9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Improve wording for Perl_langinfo()
Commit: c47bcb896429f455dddf31433100462d468934cf
https://github.com/Perl/perl5/commit/c47bcb896429f455dddf31433100462d468934cf
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 93dc55dcc8219e2025d4292a71e954ef26a50654
https://github.com/Perl/perl5/commit/93dc55dcc8219e2025d4292a71e954ef26a50654
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 98b4b383fbce3bd7911e20d6b5cf52aa90fe4583
https://github.com/Perl/perl5/commit/98b4b383fbce3bd7911e20d6b5cf52aa90fe4583
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
S_stdize_locale: Set errno if fails
Commit: b1c05068b1e38e8d864dd2983aaeb9d35a7925bc
https://github.com/Perl/perl5/commit/b1c05068b1e38e8d864dd2983aaeb9d35a7925bc
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 75b685ca3867bcfd5f0ff1d1749d7d2e1d861248
https://github.com/Perl/perl5/commit/75b685ca3867bcfd5f0ff1d1749d7d2e1d861248
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/porting/bincompat.t
Log Message:
-----------
skip bincompat.t
Commit: a9ecea141f46efa0fbe28bc27c0c49d5e137fa54
https://github.com/Perl/perl5/commit/a9ecea141f46efa0fbe28bc27c0c49d5e137fa54
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M hints/darwin.sh
Log Message:
-----------
darwin hints querylocale race in earlier darwins?
Commit: 9c6384ba90ebba6e145bc8f04144eb5850bd6e72
https://github.com/Perl/perl5/commit/9c6384ba90ebba6e145bc8f04144eb5850bd6e72
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M intrpvar.h
Log Message:
-----------
intrpvar.h: Comments
Commit: 0a422565f450c241fd3d2dc247c869fe8f878400
https://github.com/Perl/perl5/commit/0a422565f450c241fd3d2dc247c869fe8f878400
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 43b67d2c9fbe4f99cb1a12aad90b89f44f808f54
https://github.com/Perl/perl5/commit/43b67d2c9fbe4f99cb1a12aad90b89f44f808f54
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fixup emul
Commit: da7640eaa4e331ddccf93e201839ee0f126e8a5b
https://github.com/Perl/perl5/commit/da7640eaa4e331ddccf93e201839ee0f126e8a5b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6672e03985c7adaf716c57c39386cf111a8701ac
https://github.com/Perl/perl5/commit/6672e03985c7adaf716c57c39386cf111a8701ac
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 901fd15acbc59da7fccdc6c437cbb150bfd81f51
https://github.com/Perl/perl5/commit/901fd15acbc59da7fccdc6c437cbb150bfd81f51
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 7c756435b0a0a3703b2a68252db665230e539093
https://github.com/Perl/perl5/commit/7c756435b0a0a3703b2a68252db665230e539093
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0adca2aa861a4bf5680238015c1f360c1afcabf5
https://github.com/Perl/perl5/commit/0adca2aa861a4bf5680238015c1f360c1afcabf5
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M Configure
M locale.c
M metaconfig.h
M perl.h
Log Message:
-----------
f Configure
Commit: dacdaa0dc83514e4f62e1f845dfbfd8728797e3c
https://github.com/Perl/perl5/commit/dacdaa0dc83514e4f62e1f845dfbfd8728797e3c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c3f191e6f088b32053555d6753ddff14d17a0d2f
https://github.com/Perl/perl5/commit/c3f191e6f088b32053555d6753ddff14d17a0d2f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
drop when Configure fixed
Commit: a56740bf0ea2760994397319adea1790b1181569
https://github.com/Perl/perl5/commit/a56740bf0ea2760994397319adea1790b1181569
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity
Commit: 8b2dfd0fa6e3913c09ad810a10874f1877bfddee
https://github.com/Perl/perl5/commit/8b2dfd0fa6e3913c09ad810a10874f1877bfddee
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Move comment
Commit: 322d0c704964ba79fcabe49bd774c31c3665915e
https://github.com/Perl/perl5/commit/322d0c704964ba79fcabe49bd774c31c3665915e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
Maybe drop: makedef.pl: Move code
Commit: 7c3e192fbb11e70c17fbe0ffaf99457d4f482d8b
https://github.com/Perl/perl5/commit/7c3e192fbb11e70c17fbe0ffaf99457d4f482d8b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M makedef.pl
Log Message:
-----------
makedef.pl: Remove obsolete symbol
Commit: a6758b4939e1db6731c0e61f76ea9c2d03bbbf35
https://github.com/Perl/perl5/commit/a6758b4939e1db6731c0e61f76ea9c2d03bbbf35
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
Add DEBUG_SETLOCALE_INCONSISTENCIES
Commit: 0ff5ae041aab7f955e1c2787180e11cf0c8a9c0d
https://github.com/Perl/perl5/commit/0ff5ae041aab7f955e1c2787180e11cf0c8a9c0d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 1611f3ebb9835a00d4f953c91f8045d931e091bb
https://github.com/Perl/perl5/commit/1611f3ebb9835a00d4f953c91f8045d931e091bb
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
Enable DEBUG_SETLOCALE_INCONSISTENCIES
Commit: b72f77f0d88721086069bd87a10a2fce249bcc62
https://github.com/Perl/perl5/commit/b72f77f0d88721086069bd87a10a2fce249bcc62
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Add detail to locale mutex debug
Commit: 350ca9d455b55ff550039ff68a1e7690520460ac
https://github.com/Perl/perl5/commit/350ca9d455b55ff550039ff68a1e7690520460ac
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
M perl.h
M t/porting/customized.dat
Log Message:
-----------
XXX remaining loose ends
Commit: b814897af104ea72705a69871759af147838ec2b
https://github.com/Perl/perl5/commit/b814897af104ea72705a69871759af147838ec2b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M cpan/version/t/07locale.t
M pod/perlembed.pod
M t/porting/customized.dat
Log Message:
-----------
final commit
Commit: b5fd890cff525047a94d77a2055e6895cd672492
https://github.com/Perl/perl5/commit/b5fd890cff525047a94d77a2055e6895cd672492
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
use enum, maybe drop
Commit: a0cf3ab5c87c6187bcece0888a20b99d1ff7190a
https://github.com/Perl/perl5/commit/a0cf3ab5c87c6187bcece0888a20b99d1ff7190a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Revert "prev commit"
This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f.
Commit: 229709ce5a2104a6f4c63be3b25c56f0eddde5f0
https://github.com/Perl/perl5/commit/229709ce5a2104a6f4c63be3b25c56f0eddde5f0
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M embed.fnc
M locale.c
M proto.h
Log Message:
-----------
more cat index enum
Commit: 0ba1215596508fdf86caa903f03a40de9452eaae
https://github.com/Perl/perl5/commit/0ba1215596508fdf86caa903f03a40de9452eaae
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c4514d5d5951823dc19be8bc0560e765e4d948da
https://github.com/Perl/perl5/commit/c4514d5d5951823dc19be8bc0560e765e4d948da
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
f
Commit: 75a267e9247f5b83adc8f19a30ae9d9bdec56e6e
https://github.com/Perl/perl5/commit/75a267e9247f5b83adc8f19a30ae9d9bdec56e6e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h fixup
Commit: f4b0d91e24e942b76120f986060e46d567f9830f
https://github.com/Perl/perl5/commit/f4b0d91e24e942b76120f986060e46d567f9830f
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M Configure
Log Message:
-----------
f Configure for positional
Commit: d35d0f0737d1f914bc3e242fef0dd177b6c1cb46
https://github.com/Perl/perl5/commit/d35d0f0737d1f914bc3e242fef0dd177b6c1cb46
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
f Add positional
Commit: 6e8f1af065111bce4878c75eb980db5e92d808e4
https://github.com/Perl/perl5/commit/6e8f1af065111bce4878c75eb980db5e92d808e4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fixup init for C C C C C
Commit: 5b219d8aa321ab7b5ccc50d321c0875c71ecbcd3
https://github.com/Perl/perl5/commit/5b219d8aa321ab7b5ccc50d321c0875c71ecbcd3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
perlapi: Fix strftime inaccuracies, clarify
Commit: d90650db0e8c11c9d23dafaa4a11d303e2e9bfce
https://github.com/Perl/perl5/commit/d90650db0e8c11c9d23dafaa4a11d303e2e9bfce
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 0fc6781e936d3f177bcfbf4854ac44c7f97a31c3
https://github.com/Perl/perl5/commit/0fc6781e936d3f177bcfbf4854ac44c7f97a31c3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M embed.fnc
M embed.h
M locale.c
M proto.h
Log Message:
-----------
add is_cur_locale_utf8
Commit: 2c3f6e8e2a1278f75ab446ce5b53feaf6d8c1af7
https://github.com/Perl/perl5/commit/2c3f6e8e2a1278f75ab446ce5b53feaf6d8c1af7
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 72e69a6b9c8168e5e4b2c0442963404e59537207
https://github.com/Perl/perl5/commit/72e69a6b9c8168e5e4b2c0442963404e59537207
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d0d28a9b1b3a5b371ba78f6f521ad52b66402405
https://github.com/Perl/perl5/commit/d0d28a9b1b3a5b371ba78f6f521ad52b66402405
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f0127fc257beba56653bea9442b5ccde3b3d1bd4
https://github.com/Perl/perl5/commit/f0127fc257beba56653bea9442b5ccde3b3d1bd4
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 2f82fd0e365f7fd9188781b5400b4e4d35bba612
https://github.com/Perl/perl5/commit/2f82fd0e365f7fd9188781b5400b4e4d35bba612
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 470404be1135498d538a9177dc78d442b2d5105e
https://github.com/Perl/perl5/commit/470404be1135498d538a9177dc78d442b2d5105e
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9d4f66ca1307717ecf3a21a2a2ec8a1cf5d1b048
https://github.com/Perl/perl5/commit/9d4f66ca1307717ecf3a21a2a2ec8a1cf5d1b048
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 279b36d4b79e16db1bea9def2c62f57645a3a21a
https://github.com/Perl/perl5/commit/279b36d4b79e16db1bea9def2c62f57645a3a21a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 75e301d037830814c6d1e7bac23e6ed95cd2dcc1
https://github.com/Perl/perl5/commit/75e301d037830814c6d1e7bac23e6ed95cd2dcc1
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 99aaeb0c46d1d5b4865815b2cfbb8cac3059071c
https://github.com/Perl/perl5/commit/99aaeb0c46d1d5b4865815b2cfbb8cac3059071c
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M perl.h
Log Message:
-----------
perl.h: Remove extraneous ';'
Commit: 98b1865e5496d31b051b5c14c4b410dae20721ae
https://github.com/Perl/perl5/commit/98b1865e5496d31b051b5c14c4b410dae20721ae
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 23cf57a694c650243dd46fa36a35379496324ebd
https://github.com/Perl/perl5/commit/23cf57a694c650243dd46fa36a35379496324ebd
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M thread.h
Log Message:
-----------
thread.h: White space only
Indent some nested preproccessor defines
Commit: d1d481828b46a231a485de3d0df781cbd5fc0d12
https://github.com/Perl/perl5/commit/d1d481828b46a231a485de3d0df781cbd5fc0d12
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M ext/POSIX/t/time.t
Log Message:
-----------
time.t
Commit: 4be66bc0b2b89341c345c2e9a08db68f14e3ff01
https://github.com/Perl/perl5/commit/4be66bc0b2b89341c345c2e9a08db68f14e3ff01
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: d1af148587392786fd16b1efab5c8fc8cb742778
https://github.com/Perl/perl5/commit/d1af148587392786fd16b1efab5c8fc8cb742778
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 01ca76521756b75e2a137f64499caf3962327fae
https://github.com/Perl/perl5/commit/01ca76521756b75e2a137f64499caf3962327fae
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9acc310b73033d59a2e638032ec330c0286a7d92
https://github.com/Perl/perl5/commit/9acc310b73033d59a2e638032ec330c0286a7d92
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: b1d56b3c168a95e1d43d3f7fe17df147dfb337db
https://github.com/Perl/perl5/commit/b1d56b3c168a95e1d43d3f7fe17df147dfb337db
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: fca978f9d674b7c6456bf3cded01119e764d45ea
https://github.com/Perl/perl5/commit/fca978f9d674b7c6456bf3cded01119e764d45ea
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: e72ba8ce93ab200a56b3ea0dbe98acf731b42767
https://github.com/Perl/perl5/commit/e72ba8ce93ab200a56b3ea0dbe98acf731b42767
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c3637851e8eb25a77e53502804e89a5d37655e60
https://github.com/Perl/perl5/commit/c3637851e8eb25a77e53502804e89a5d37655e60
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 57d362ca1bf9028e512d952b33a998338fce0d2a
https://github.com/Perl/perl5/commit/57d362ca1bf9028e512d952b33a998338fce0d2a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 119b61ca9f56252fc627ad78a55c80268ceb3633
https://github.com/Perl/perl5/commit/119b61ca9f56252fc627ad78a55c80268ceb3633
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M cpan/Time-Piece/Piece.xs
Log Message:
-----------
Time-Piece: notes to myself
Commit: 0f06ed929ce046044a8f5589567ec81d0afea427
https://github.com/Perl/perl5/commit/0f06ed929ce046044a8f5589567ec81d0afea427
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
dregs
Commit: f9c05b546b0b00a35f5bd8a36a955b8e9894232a
https://github.com/Perl/perl5/commit/f9c05b546b0b00a35f5bd8a36a955b8e9894232a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 4d6a9ea0e7a5cd2ee6d69cf486fa1837439ba0d1
https://github.com/Perl/perl5/commit/4d6a9ea0e7a5cd2ee6d69cf486fa1837439ba0d1
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M util.c
Log Message:
-----------
util.c: Better panic messages
Commit: 1bc69443e0b7b44e650739eeb2b6901d4825dea8
https://github.com/Perl/perl5/commit/1bc69443e0b7b44e650739eeb2b6901d4825dea8
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M win32/Makefile
Log Message:
-----------
win32 Makefile
Commit: 7f8c4a8a3ff491bc1e373d63565e031ad7d48883
https://github.com/Perl/perl5/commit/7f8c4a8a3ff491bc1e373d63565e031ad7d48883
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 6abe51b3a2c4121b4db588fb384938572a4bdeda
https://github.com/Perl/perl5/commit/6abe51b3a2c4121b4db588fb384938572a4bdeda
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: bc9a15cc06074d920d43ca19a521d7a9688cc4c9
https://github.com/Perl/perl5/commit/bc9a15cc06074d920d43ca19a521d7a9688cc4c9
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 473428c26535e835d21f13db22d59298f3775231
https://github.com/Perl/perl5/commit/473428c26535e835d21f13db22d59298f3775231
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: ddcee651f62edf94fdc7bf0055aecbfc34f43d08
https://github.com/Perl/perl5/commit/ddcee651f62edf94fdc7bf0055aecbfc34f43d08
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8e59d61328da8814ee23dfa5d2c69cc150843573
https://github.com/Perl/perl5/commit/8e59d61328da8814ee23dfa5d2c69cc150843573
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/re/pat.t
Log Message:
-----------
re/pat.t: Fix typo in comment
Commit: aea84f6ce1b7c68b87c0028bb6b5f4ffef6387be
https://github.com/Perl/perl5/commit/aea84f6ce1b7c68b87c0028bb6b5f4ffef6387be
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M t/run/locale.t
Log Message:
-----------
fdregs
Commit: af6ded6b0123282788d54863146df4982eb86771
https://github.com/Perl/perl5/commit/af6ded6b0123282788d54863146df4982eb86771
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 632a6eba2269c06f051a98d7f1cc97d8cbec3fa3
https://github.com/Perl/perl5/commit/632a6eba2269c06f051a98d7f1cc97d8cbec3fa3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 840d9dd2cc0bc0a6a41d91e431872f11f38842d3
https://github.com/Perl/perl5/commit/840d9dd2cc0bc0a6a41d91e431872f11f38842d3
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 09910d133eeff150f67392c004ebb83435cf6597
https://github.com/Perl/perl5/commit/09910d133eeff150f67392c004ebb83435cf6597
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M inline.h
Log Message:
-----------
Revert #if 0 in inline.h
I don't remember why this was done
Commit: cc04261a4d7e0aa8d9ef5b4d8e9a05e0cdb2f482
https://github.com/Perl/perl5/commit/cc04261a4d7e0aa8d9ef5b4d8e9a05e0cdb2f482
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 8b94f9f01d0b13e81d6515da742161e000b3cd9a
https://github.com/Perl/perl5/commit/8b94f9f01d0b13e81d6515da742161e000b3cd9a
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 672e29ac79f5639180ee49f8c0355bcced952d82
https://github.com/Perl/perl5/commit/672e29ac79f5639180ee49f8c0355bcced952d82
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: c40a57118d786c156637c3e09c64bd5851b15003
https://github.com/Perl/perl5/commit/c40a57118d786c156637c3e09c64bd5851b15003
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M util.c
M win32/perlhost.h
Log Message:
-----------
XXX Win32 mem log
Commit: 5ba676560237852b8b8fb1a4a15ab7a55f24ec0b
https://github.com/Perl/perl5/commit/5ba676560237852b8b8fb1a4a15ab7a55f24ec0b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M util.c
Log Message:
-----------
XXX util add thread to mem_log
Commit: 2478ff500a828dcce8251ed02cda1e7f04d99314
https://github.com/Perl/perl5/commit/2478ff500a828dcce8251ed02cda1e7f04d99314
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
XXX mv: initialize PL_cur_LC_ALL
Commit: 2e65658b25125da1be26b8a538c7cfc9ef9f2fed
https://github.com/Perl/perl5/commit/2e65658b25125da1be26b8a538c7cfc9ef9f2fed
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
Debug wrap wset
Commit: 9595b634532abe5651d5eada42813b482798fdd1
https://github.com/Perl/perl5/commit/9595b634532abe5651d5eada42813b482798fdd1
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
more dregs
Commit: 23ffc0245d860eadff7cb883167e0965ff7c952b
https://github.com/Perl/perl5/commit/23ffc0245d860eadff7cb883167e0965ff7c952b
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
f XXX maybe
Commit: d4cb301c44ec7a2665489d4d43c724c23b9c1d87
https://github.com/Perl/perl5/commit/d4cb301c44ec7a2665489d4d43c724c23b9c1d87
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 40ef3b46a5c9a4506b532cbe41bf9088cbe96b01
https://github.com/Perl/perl5/commit/40ef3b46a5c9a4506b532cbe41bf9088cbe96b01
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: f38321fe79ab49ecce920f837e263ebaa532286d
https://github.com/Perl/perl5/commit/f38321fe79ab49ecce920f837e263ebaa532286d
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 3303ca5259af4384ad213a520280bdaaeed29594
https://github.com/Perl/perl5/commit/3303ca5259af4384ad213a520280bdaaeed29594
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 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: 9aa514e11cf9d3e3a2bdb0950f8a59811808df45
https://github.com/Perl/perl5/commit/9aa514e11cf9d3e3a2bdb0950f8a59811808df45
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
d
Commit: 30cef81b79cc982fa534c52dd7b1cbae647f85ea
https://github.com/Perl/perl5/commit/30cef81b79cc982fa534c52dd7b1cbae647f85ea
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M locale.c
Log Message:
-----------
fdregs
Commit: 8991bb0495c6c6d4c9bbd6b77df3f5f29ed46939
https://github.com/Perl/perl5/commit/8991bb0495c6c6d4c9bbd6b77df3f5f29ed46939
Author: Karl Williamson <khw@cpan.org>
Date: 2023-06-12 (Mon, 12 Jun 2023)
Changed paths:
M lib/locale_threads.t
M locale.c
M t/loc_tools.pl
Log Message:
-----------
foo
Compare: https://github.com/Perl/perl5/compare/baad94e8c9ea...8991bb0495c6
-
[Perl/perl5] 90eaf6: XXX skip croak.t under sanitizer
by Karl Williamson via perl5-changes