Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: 967826ea350821aa382399043f4a8d17a4d71292 https://github.com/Perl/perl5/commit/967826ea350821aa382399043f4a8d17a4d71292 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023)
Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: 133c12ce6eca426cd2902510172e03b3a3e4c12a https://github.com/Perl/perl5/commit/133c12ce6eca426cd2902510172e03b3a3e4c12a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 69e6d701dcfe38358b21efa23d585a27e71e2a7c https://github.com/Perl/perl5/commit/69e6d701dcfe38358b21efa23d585a27e71e2a7c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a413dc1719ae90484ca78445e664c7290270c592 https://github.com/Perl/perl5/commit/a413dc1719ae90484ca78445e664c7290270c592 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/TEST Log Message: ----------- XXX skip cpan testing Commit: 19037fbaa9e1a0fb856d6bb3fce6635cd064a446 https://github.com/Perl/perl5/commit/19037fbaa9e1a0fb856d6bb3fce6635cd064a446 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 16114d116bf69b0ecfad7146bb9fc7c45ff06706 https://github.com/Perl/perl5/commit/16114d116bf69b0ecfad7146bb9fc7c45ff06706 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 05cb38ddbb2fccfc804f57296b2dab8c95fbdc75 https://github.com/Perl/perl5/commit/05cb38ddbb2fccfc804f57296b2dab8c95fbdc75 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/test.pl Log Message: ----------- XXX test.pl: dont unlink temps Commit: e043fd7385dd50ccdcb9527261a1ea7b974d24a8 https://github.com/Perl/perl5/commit/e043fd7385dd50ccdcb9527261a1ea7b974d24a8 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/test.pl Log Message: ----------- Revert "XXX test.pl: dont unlink temps" This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b. Commit: 039efffd3dd2b0022d3a5d051acafbac137c0328 https://github.com/Perl/perl5/commit/039efffd3dd2b0022d3a5d051acafbac137c0328 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 1182acd9b01d97a47bbcc8026c9b54ac59c221b6 https://github.com/Perl/perl5/commit/1182acd9b01d97a47bbcc8026c9b54ac59c221b6 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: 004f1e87e3a9fc866891fda07b93c057492c7a4b https://github.com/Perl/perl5/commit/004f1e87e3a9fc866891fda07b93c057492c7a4b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8189341e2cdd7149257a0c26b047321f8f9e659d https://github.com/Perl/perl5/commit/8189341e2cdd7149257a0c26b047321f8f9e659d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: d9d9d69dd2bcf06e448f76d7bc3f39807684cc06 https://github.com/Perl/perl5/commit/d9d9d69dd2bcf06e448f76d7bc3f39807684cc06 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M vutil.c Log Message: ----------- vutil.c: Debug Commit: ecac2b78ce833a95a99e33494bb90afebab5f69a https://github.com/Perl/perl5/commit/ecac2b78ce833a95a99e33494bb90afebab5f69a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 04c8a4ff380921630bff4144a13f7533fa6c0c04 https://github.com/Perl/perl5/commit/04c8a4ff380921630bff4144a13f7533fa6c0c04 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: cd1a7d83a4d5a0ccd1bfb5b0119c0bb7aba6b7ea https://github.com/Perl/perl5/commit/cd1a7d83a4d5a0ccd1bfb5b0119c0bb7aba6b7ea Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: c9df3d287c81f283e343a31464d88ff0a05d633a https://github.com/Perl/perl5/commit/c9df3d287c81f283e343a31464d88ff0a05d633a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 5d18e4a2180477ceb6e6dd8d1873f7481e87ba5a https://github.com/Perl/perl5/commit/5d18e4a2180477ceb6e6dd8d1873f7481e87ba5a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 54bb8522482c58d211a8ec56947a355c3787b11b https://github.com/Perl/perl5/commit/54bb8522482c58d211a8ec56947a355c3787b11b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: 2e987464f1f6ecc1b718d41efb229260ee8eed76 https://github.com/Perl/perl5/commit/2e987464f1f6ecc1b718d41efb229260ee8eed76 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: 715cc6944e7e8aa726720ded1bc0ff54d80b6248 https://github.com/Perl/perl5/commit/715cc6944e7e8aa726720ded1bc0ff54d80b6248 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: b2fbfabef5cf11f0cb8e5610112d40e3585cfc52 https://github.com/Perl/perl5/commit/b2fbfabef5cf11f0cb8e5610112d40e3585cfc52 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 57994d09cc41e932d4fa49f4f88821c2a8c98890 https://github.com/Perl/perl5/commit/57994d09cc41e932d4fa49f4f88821c2a8c98890 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M Configure Log Message: ----------- XXX Configure temporary to get no_nl, etc working Commit: 6569f7f395700e2fdba6a10663ab1a4401238310 https://github.com/Perl/perl5/commit/6569f7f395700e2fdba6a10663ab1a4401238310 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M win32/config_H.gc M win32/config_H.vc Log Message: ----------- Regenerate Configure after metaconfig backports applied Commit: 6025160157827fec829e7361b2d8cbd59dc1a9f7 https://github.com/Perl/perl5/commit/6025160157827fec829e7361b2d8cbd59dc1a9f7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 3bdc65b6718bb0351c3d277a9d9c65820fadfa5d https://github.com/Perl/perl5/commit/3bdc65b6718bb0351c3d277a9d9c65820fadfa5d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: eb613abdaa66f96467879c389879ba2e8da0901c https://github.com/Perl/perl5/commit/eb613abdaa66f96467879c389879ba2e8da0901c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 7bbdcb0ee5a5d131f2b2b1c3bc5facec5edc8517 https://github.com/Perl/perl5/commit/7bbdcb0ee5a5d131f2b2b1c3bc5facec5edc8517 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 3a2f2962e439cded482ff6fbb4941d20e70e336b https://github.com/Perl/perl5/commit/3a2f2962e439cded482ff6fbb4941d20e70e336b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M intrpvar.h M perl.h Log Message: ----------- perl.h: Create a locale mnemonic #define for sync across files Commit: 57a1c5307de8f6af0f97147cbe1f66ff6e3df3f2 https://github.com/Perl/perl5/commit/57a1c5307de8f6af0f97147cbe1f66ff6e3df3f2 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: undef LC_ALL Commit: 4bfd615f360abbea032f07aa1d7e91f8ff034281 https://github.com/Perl/perl5/commit/4bfd615f360abbea032f07aa1d7e91f8ff034281 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: 6d5559eb46d6284b61156fe77b1e239e77e3f551 https://github.com/Perl/perl5/commit/6d5559eb46d6284b61156fe77b1e239e77e3f551 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- ruler Commit: b695095a84d1c4c3f85cf36c3b899bbbf5fbb305 https://github.com/Perl/perl5/commit/b695095a84d1c4c3f85cf36c3b899bbbf5fbb305 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f4eb6806e9cb86a66a82fde8f866d42d09f415c1 https://github.com/Perl/perl5/commit/f4eb6806e9cb86a66a82fde8f866d42d09f415c1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 76a319e788c316a995b15a0f83abe54f0770ebfb https://github.com/Perl/perl5/commit/76a319e788c316a995b15a0f83abe54f0770ebfb Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a5aa544446757523ca3d244abcbf3134a6fce6d2 https://github.com/Perl/perl5/commit/a5aa544446757523ca3d244abcbf3134a6fce6d2 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: e284141aa84df4cccf11f3bb8acf8d0b84686604 https://github.com/Perl/perl5/commit/e284141aa84df4cccf11f3bb8acf8d0b84686604 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- DEBUG_ Commit: cd5b8a5f6aadaf2c2b4fa895f4c69a6ee2674ef9 https://github.com/Perl/perl5/commit/cd5b8a5f6aadaf2c2b4fa895f4c69a6ee2674ef9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6f833c0b0c2fe061408bb7ac7969e22f31c488e3 https://github.com/Perl/perl5/commit/6f833c0b0c2fe061408bb7ac7969e22f31c488e3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: debug with thread id Commit: dfa16fcf41204a7d096910882c9a61c1e32d853e https://github.com/Perl/perl5/commit/dfa16fcf41204a7d096910882c9a61c1e32d853e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: 965ded750bfb5e411ae4e31bf8f237535cdd4706 https://github.com/Perl/perl5/commit/965ded750bfb5e411ae4e31bf8f237535cdd4706 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- XXX win workaround Commit: ec922f6510ebe30289f18f4fb81cfdf6ecac734f https://github.com/Perl/perl5/commit/ec922f6510ebe30289f18f4fb81cfdf6ecac734f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- just after XXX win workaround Commit: 98696590a8e054f54dc44aac1a77bc41919c41ae https://github.com/Perl/perl5/commit/98696590a8e054f54dc44aac1a77bc41919c41ae Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale_threads.t M t/run/locale.t Log Message: ----------- locale_threads Commit: bbda27e5f6f6d78be7a13eb0aa478f6f3378ba73 https://github.com/Perl/perl5/commit/bbda27e5f6f6d78be7a13eb0aa478f6f3378ba73 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- XXX locale_threads.t: Add alarm Commit: c9a0b8159871e5a279d157d9d875decce72bb079 https://github.com/Perl/perl5/commit/c9a0b8159871e5a279d157d9d875decce72bb079 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h: Debug locking Commit: e30d9335e384833925c8c5fe916adf69faa7b2ff https://github.com/Perl/perl5/commit/e30d9335e384833925c8c5fe916adf69faa7b2ff Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 88f675825d2b49365d48cb0ed756f4b2b32176e7 https://github.com/Perl/perl5/commit/88f675825d2b49365d48cb0ed756f4b2b32176e7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/threads/threads.xs M inline.h Log Message: ----------- threads.xs DEBUG_U Commit: 454f476958ee5f0bf5b73cb20bebcb0bf920e404 https://github.com/Perl/perl5/commit/454f476958ee5f0bf5b73cb20bebcb0bf920e404 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: fb4134d6ef40ce2862245c265218a4d207d904ca https://github.com/Perl/perl5/commit/fb4134d6ef40ce2862245c265218a4d207d904ca Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools Commit: 94fed0c3b51d5fcd94792b7d43f21f17c8b13bba https://github.com/Perl/perl5/commit/94fed0c3b51d5fcd94792b7d43f21f17c8b13bba Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/loc_tools.pl Log Message: ----------- XXX t/loc_tools.pl: Temp debug Commit: c33206fd13b38aef5d3cf1359a54475f27fb6bb0 https://github.com/Perl/perl5/commit/c33206fd13b38aef5d3cf1359a54475f27fb6bb0 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 7500b60eaa03694ad2a8c07b0ad524e3fc231227 https://github.com/Perl/perl5/commit/7500b60eaa03694ad2a8c07b0ad524e3fc231227 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: ed0527a9f7ca072a790f04710eb7a9e9727cdc7d https://github.com/Perl/perl5/commit/ed0527a9f7ca072a790f04710eb7a9e9727cdc7d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: fe6f157a101ec5abac7c48a64a33ac43711ac979 https://github.com/Perl/perl5/commit/fe6f157a101ec5abac7c48a64a33ac43711ac979 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 74afa150ff7fbc76e11880baab26f48a1fd800e5 https://github.com/Perl/perl5/commit/74afa150ff7fbc76e11880baab26f48a1fd800e5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h: White space, comments only Commit: de54ee363de127f5147bd3bfc6c4c720baa7d42d https://github.com/Perl/perl5/commit/de54ee363de127f5147bd3bfc6c4c720baa7d42d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h change lock debugging text Commit: e7565e7fcf5efa6ab3c8f07954586ea2a4271f65 https://github.com/Perl/perl5/commit/e7565e7fcf5efa6ab3c8f07954586ea2a4271f65 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/harness Log Message: ----------- t/harness temp tweaks Commit: 8dc64f68ffa841f039cfa3442bfacd4daaf60898 https://github.com/Perl/perl5/commit/8dc64f68ffa841f039cfa3442bfacd4daaf60898 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: 509fc9dd8c078e5e82c4ac5f017590c73453d13b https://github.com/Perl/perl5/commit/509fc9dd8c078e5e82c4ac5f017590c73453d13b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- XXX ruler lib/locale_threads.t Commit: 339a4047394756440ac59b6e7825c19dec810672 https://github.com/Perl/perl5/commit/339a4047394756440ac59b6e7825c19dec810672 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M hints/freebsd.sh M hints/openbsd.sh Log Message: ----------- XXX try out bsd 2008 Commit: bd369637eabcd88efca1b9ca6e0599df7f6fdac9 https://github.com/Perl/perl5/commit/bd369637eabcd88efca1b9ca6e0599df7f6fdac9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 81c14f004ad56c0db1ee5827e16477b072edc5d8 https://github.com/Perl/perl5/commit/81c14f004ad56c0db1ee5827e16477b072edc5d8 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 27da2fceb4c7e6920b4e58b84960fa14bcdf246f https://github.com/Perl/perl5/commit/27da2fceb4c7e6920b4e58b84960fa14bcdf246f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: e8d4a0594d29013555e6c0cdc91ccc3f7b4dfd00 https://github.com/Perl/perl5/commit/e8d4a0594d29013555e6c0cdc91ccc3f7b4dfd00 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: 5396671620601cb421d693e772eaa81e6ea379ee https://github.com/Perl/perl5/commit/5396671620601cb421d693e772eaa81e6ea379ee Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: 2b7745bd16512cee7b34956b4b94da94c3a9f7c6 https://github.com/Perl/perl5/commit/2b7745bd16512cee7b34956b4b94da94c3a9f7c6 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: 00738612622562d674bb678c44a1cdc5ed1764c0 https://github.com/Perl/perl5/commit/00738612622562d674bb678c44a1cdc5ed1764c0 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M handy.h Log Message: ----------- XXX cygwin debugging small macro buf Commit: 1f6949d9d52492588798b62fd3333e66dca980e4 https://github.com/Perl/perl5/commit/1f6949d9d52492588798b62fd3333e66dca980e4 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: e01209c2cef942d0757c0458274cd1fec72b8852 https://github.com/Perl/perl5/commit/e01209c2cef942d0757c0458274cd1fec72b8852 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: 788391b930607d161df88fb4b5051dd3866b0af1 https://github.com/Perl/perl5/commit/788391b930607d161df88fb4b5051dd3866b0af1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M regexec.c Log Message: ----------- regexec.c: XXX has cast to U8 for some reason Commit: 9a25725d8df3185ba1216df7da203643674e4198 https://github.com/Perl/perl5/commit/9a25725d8df3185ba1216df7da203643674e4198 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M sv.c Log Message: ----------- perlapi: Combine sv_eq(), sv_eq_flags() entries Commit: 6bf38e89ee28c87b4e09c483de99f8bf7371a504 https://github.com/Perl/perl5/commit/6bf38e89ee28c87b4e09c483de99f8bf7371a504 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/ExtUtils-ParseXS/lib/perlxs.pod M t/porting/known_pod_issues.dat Log Message: ----------- perlxs Commit: 4d1b00fb5844a6cc02835b5b3693f07d6a94f1fe https://github.com/Perl/perl5/commit/4d1b00fb5844a6cc02835b5b3693f07d6a94f1fe Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/IO/IO.xs Log Message: ----------- XXX check if using ppport IO.xs: Remove fallback code furnished by ppport Commit: de936f1415418ee1023f3d18175be5485973a0a3 https://github.com/Perl/perl5/commit/de936f1415418ee1023f3d18175be5485973a0a3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M pp.c Log Message: ----------- Debug Windows memory usage in pp_study Commit: 7386a487d3d8ec6dbc2d9ad7e4435aec1760f802 https://github.com/Perl/perl5/commit/7386a487d3d8ec6dbc2d9ad7e4435aec1760f802 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: bdac27e8d503e97ac147847e353c5e5bf17bf127 https://github.com/Perl/perl5/commit/bdac27e8d503e97ac147847e353c5e5bf17bf127 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: 3eb7bd56a595be1dd7db38bc3f22abc6bfb9d371 https://github.com/Perl/perl5/commit/3eb7bd56a595be1dd7db38bc3f22abc6bfb9d371 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6ca11240fd11ec562ce8845e2f0c2ea6a0b93091 https://github.com/Perl/perl5/commit/6ca11240fd11ec562ce8845e2f0c2ea6a0b93091 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 21854f35f4d426034a7dcebf7fe0517567c2817d https://github.com/Perl/perl5/commit/21854f35f4d426034a7dcebf7fe0517567c2817d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a1176796b9569c96bfd1664a420001de54f9928b https://github.com/Perl/perl5/commit/a1176796b9569c96bfd1664a420001de54f9928b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: c8feef9a1761eb989824e7a036896b805b42a9f6 https://github.com/Perl/perl5/commit/c8feef9a1761eb989824e7a036896b805b42a9f6 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f97381d525102a5c3cd4c7d4728f5e4c2353fb02 https://github.com/Perl/perl5/commit/f97381d525102a5c3cd4c7d4728f5e4c2353fb02 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 28c7c4a8e6c8e9cdec894b4df8a74a56686b16dd https://github.com/Perl/perl5/commit/28c7c4a8e6c8e9cdec894b4df8a74a56686b16dd Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: be51f0024b5b36df3050208bf73fd4f959f4379a https://github.com/Perl/perl5/commit/be51f0024b5b36df3050208bf73fd4f959f4379a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M proto.h Log Message: ----------- locale.c: Add warning if function return ignored Commit: eb5274013d8e4a8d682e6894dc43e2318346d8d6 https://github.com/Perl/perl5/commit/eb5274013d8e4a8d682e6894dc43e2318346d8d6 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: fef94a0dcdbc0f6a3793606ea1b1f888cbf57a2f https://github.com/Perl/perl5/commit/fef94a0dcdbc0f6a3793606ea1b1f888cbf57a2f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 61fffa5f0d4245223369007433ebb9aa3cda2a83 https://github.com/Perl/perl5/commit/61fffa5f0d4245223369007433ebb9aa3cda2a83 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 49133099bea9ba6d4878b42c7704ddb303571d97 https://github.com/Perl/perl5/commit/49133099bea9ba6d4878b42c7704ddb303571d97 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: c6b2e7709cd55c29bfc77ffb84c4bb7a56133d30 https://github.com/Perl/perl5/commit/c6b2e7709cd55c29bfc77ffb84c4bb7a56133d30 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 2ed517c8d29c93bdfcc6560e7c6501b1fc6634fb https://github.com/Perl/perl5/commit/2ed517c8d29c93bdfcc6560e7c6501b1fc6634fb Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 224bc9a08795f23a82dfb954adda49daf7f4d911 https://github.com/Perl/perl5/commit/224bc9a08795f23a82dfb954adda49daf7f4d911 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 360c443b548823b755037ccd46352a0591cc034b https://github.com/Perl/perl5/commit/360c443b548823b755037ccd46352a0591cc034b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a57f6a8e603dd77f4c31b04b4c422f2c69d6eeb5 https://github.com/Perl/perl5/commit/a57f6a8e603dd77f4c31b04b4c422f2c69d6eeb5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: R .github/CONTRIBUTING.pod A .github/CONTRIBUTING.pod R .github/README.md A .github/README.md Log Message: ----------- type change Commit: 80ccbeb40e5bd0c4319031cd1c1b975ff8c3862c https://github.com/Perl/perl5/commit/80ccbeb40e5bd0c4319031cd1c1b975ff8c3862c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 49eb64cfb1cb6c4db757fda29320c96663cdd8fb https://github.com/Perl/perl5/commit/49eb64cfb1cb6c4db757fda29320c96663cdd8fb Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 1491dd31368cbb1b274d2fc4abc838090b51e317 https://github.com/Perl/perl5/commit/1491dd31368cbb1b274d2fc4abc838090b51e317 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8e132119eefdd7d58f75849101ed398b0d1fd865 https://github.com/Perl/perl5/commit/8e132119eefdd7d58f75849101ed398b0d1fd865 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0e8cf9f8c2b92a145f6afc2b1aa67b32b1d4a6ee https://github.com/Perl/perl5/commit/0e8cf9f8c2b92a145f6afc2b1aa67b32b1d4a6ee Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9c5690c1219d4e274f80c6e34d0aacf847ce9592 https://github.com/Perl/perl5/commit/9c5690c1219d4e274f80c6e34d0aacf847ce9592 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f797f1d3005023234bda0b1d41becef1942994a9 https://github.com/Perl/perl5/commit/f797f1d3005023234bda0b1d41becef1942994a9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 2b7edbaef8b6964b3f43b5911005803110479a7e https://github.com/Perl/perl5/commit/2b7edbaef8b6964b3f43b5911005803110479a7e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b777a1711ebb4cc949ca3a404434c4f1dff93c08 https://github.com/Perl/perl5/commit/b777a1711ebb4cc949ca3a404434c4f1dff93c08 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: ac8ca927ebc318fc9ece9b0388f88da1f8598091 https://github.com/Perl/perl5/commit/ac8ca927ebc318fc9ece9b0388f88da1f8598091 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- S_toggle_locale_i: Move some assert()s, initialization Commit: 41dc7a96297f01f2ef617dbe431d5043cadf353d https://github.com/Perl/perl5/commit/41dc7a96297f01f2ef617dbe431d5043cadf353d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 72de9cc216ff3369d69c14dc80ef3e452f4a5d3e https://github.com/Perl/perl5/commit/72de9cc216ff3369d69c14dc80ef3e452f4a5d3e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 17432d39bb67ffeb981db2522b8322a582c1f521 https://github.com/Perl/perl5/commit/17432d39bb67ffeb981db2522b8322a582c1f521 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: ceed1245177f4d018d116c0e7a59676658a54241 https://github.com/Perl/perl5/commit/ceed1245177f4d018d116c0e7a59676658a54241 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: bcb37799a817b378e861df3cef4cf4b09b27da7b https://github.com/Perl/perl5/commit/bcb37799a817b378e861df3cef4cf4b09b27da7b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6a327db5c9d43c12582a6e184fa03b250218e476 https://github.com/Perl/perl5/commit/6a327db5c9d43c12582a6e184fa03b250218e476 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0621d6d836cd7cc73ef28391e65f09b06e21bf43 https://github.com/Perl/perl5/commit/0621d6d836cd7cc73ef28391e65f09b06e21bf43 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8f13a81647deaaee6cec52db7b24aa6c627381ff https://github.com/Perl/perl5/commit/8f13a81647deaaee6cec52db7b24aa6c627381ff Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: dea86d9bb70744c1b4ff2b788ed6c8062028fcd9 https://github.com/Perl/perl5/commit/dea86d9bb70744c1b4ff2b788ed6c8062028fcd9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0d79d27d3904c5214a6ead196d7476259252a5ec https://github.com/Perl/perl5/commit/0d79d27d3904c5214a6ead196d7476259252a5ec Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0dfd8fbe30f35579bdf7529bcb9190976fe851e5 https://github.com/Perl/perl5/commit/0dfd8fbe30f35579bdf7529bcb9190976fe851e5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: e34c6cac7d80da2dd3fda259280e38ebf233d5fe https://github.com/Perl/perl5/commit/e34c6cac7d80da2dd3fda259280e38ebf233d5fe Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Shortcut common case When using the POSIX 2008 locale interface, perl keeps (for the entire lifetime of the process) an object for when all locale categories are in the C locale. So, if someone queries the current locale, and the C object is the one in effect, the locale must be C, and we can return C immediately. This has the salubrious effect of hiding from perl bugs on some *BSD-related platforms. A link to a ticket to FREEBSD is in one of the comment lines of this commit. Commit: 6a5a91532ab38873523508b8bd57cd809a806cf1 https://github.com/Perl/perl5/commit/6a5a91532ab38873523508b8bd57cd809a806cf1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 22a234969feb228b85eb90705ff14607335dde03 https://github.com/Perl/perl5/commit/22a234969feb228b85eb90705ff14607335dde03 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: e4e4fb07733103fb27ae17b63e2514ccced45e07 https://github.com/Perl/perl5/commit/e4e4fb07733103fb27ae17b63e2514ccced45e07 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 5259812340aba67eb0c51faf0ce5b65d1d9d72e9 https://github.com/Perl/perl5/commit/5259812340aba67eb0c51faf0ce5b65d1d9d72e9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move a #define, and add a comment Commit: 17fedfe26689fe184590bf17ff921a67cd1bd1d8 https://github.com/Perl/perl5/commit/17fedfe26689fe184590bf17ff921a67cd1bd1d8 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- XXX try reverting: locale.c: Lock around querylocale See what passes Commit: ac95770cff86a0f8df65af5c2d91c1b873c9548b https://github.com/Perl/perl5/commit/ac95770cff86a0f8df65af5c2d91c1b873c9548b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- Revert "XXX try reverting: locale.c: Lock around querylocale" This reverts commit 899565f1db40eb12fba5733b20cd63362d7e5b5f. Commit: e04e969f61567c73b6b66f6eeadd058a055cb71e https://github.com/Perl/perl5/commit/e04e969f61567c73b6b66f6eeadd058a055cb71e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 4d8545b18df9a4d1527dd7898904592fd6cc356b https://github.com/Perl/perl5/commit/4d8545b18df9a4d1527dd7898904592fd6cc356b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 94355f934a919dde25149b495f7410a25b5647e5 https://github.com/Perl/perl5/commit/94355f934a919dde25149b495f7410a25b5647e5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move two helper functions for POSIX 2008 implementation Commit: 184b0ab0f28408929a79e4583d6d5ac370798469 https://github.com/Perl/perl5/commit/184b0ab0f28408929a79e4583d6d5ac370798469 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0f1b017ce0df811365ae65fa7e02c17de348e170 https://github.com/Perl/perl5/commit/0f1b017ce0df811365ae65fa7e02c17de348e170 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 47c5f5c44ad17df0b6885713e207d2e0bd7fff83 https://github.com/Perl/perl5/commit/47c5f5c44ad17df0b6885713e207d2e0bd7fff83 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a8127c12041c922f4406b881c7fe168f41795677 https://github.com/Perl/perl5/commit/a8127c12041c922f4406b881c7fe168f41795677 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9e893a642b9f3427fcc030b09f83ad4a54b8cab7 https://github.com/Perl/perl5/commit/9e893a642b9f3427fcc030b09f83ad4a54b8cab7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c M perl.h Log Message: ----------- locale.c, perl.h: comments, white space Commit: 8bc4f934e2529324d0e1f98570bc22776b2967a1 https://github.com/Perl/perl5/commit/8bc4f934e2529324d0e1f98570bc22776b2967a1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6ef6b4cc9aca9a4438825e2e9fe99698d40c7af5 https://github.com/Perl/perl5/commit/6ef6b4cc9aca9a4438825e2e9fe99698d40c7af5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 47d6a33976c239f4a66f616eefd1965172a5588b https://github.com/Perl/perl5/commit/47d6a33976c239f4a66f616eefd1965172a5588b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0d7a3419389adeadf13dc77f1ef9d26a0f304075 https://github.com/Perl/perl5/commit/0d7a3419389adeadf13dc77f1ef9d26a0f304075 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: bd86b3721c023258a873b1ece14616548a200164 https://github.com/Perl/perl5/commit/bd86b3721c023258a873b1ece14616548a200164 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f8169c4e5cb97ffdbf9841e0246203bf9b65f8b0 https://github.com/Perl/perl5/commit/f8169c4e5cb97ffdbf9841e0246203bf9b65f8b0 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 379aecdb2e66f13c3386e4d4db03d601281fbad1 https://github.com/Perl/perl5/commit/379aecdb2e66f13c3386e4d4db03d601281fbad1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: c3934094b34028d0653b645d0c7cc0f5144f8a57 https://github.com/Perl/perl5/commit/c3934094b34028d0653b645d0c7cc0f5144f8a57 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- XXX perldelta other pod: Compile stdize_setlocale() only if requested XXX perldelta, and where else? This very old function has been whittled down to just looking for newlines in returned locales. Those just haven't come up in platforms we have tested on in recent years. Therefore, this is extra work on most, or perhaps all platforms. Should a platform show that this is still needed, its hints file can be changed to add a Configure option. Commit: ac0b6d1fc130b3ab7e73d2d01c9256ce7d8a6dcf https://github.com/Perl/perl5/commit/ac0b6d1fc130b3ab7e73d2d01c9256ce7d8a6dcf Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f661cf7071a5d761491817c35b81454a1813d0cc https://github.com/Perl/perl5/commit/f661cf7071a5d761491817c35b81454a1813d0cc Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move a macro definition earlier in the file Commit: 64067a21063b99ab3a593473409fc7332fb561a1 https://github.com/Perl/perl5/commit/64067a21063b99ab3a593473409fc7332fb561a1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Change DEBUG statements to include non-0 errno This is very helpful when things go wrong. Commit: 8aad46e105c2f12c35277f2c4f7e2331900a6658 https://github.com/Perl/perl5/commit/8aad46e105c2f12c35277f2c4f7e2331900a6658 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Only define string constant on platforms that need it Commit: 3e189d8d1975141f132664113f64383f0788473c https://github.com/Perl/perl5/commit/3e189d8d1975141f132664113f64383f0788473c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: c2d210b21d86826a98bde40cfbc3ee455a3d9f56 https://github.com/Perl/perl5/commit/c2d210b21d86826a98bde40cfbc3ee455a3d9f56 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b200485484c2221864d4b5e7103b9d306475d525 https://github.com/Perl/perl5/commit/b200485484c2221864d4b5e7103b9d306475d525 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 276411e7fd37a8071e0f6806c0ce98daaa2e7f4a https://github.com/Perl/perl5/commit/276411e7fd37a8071e0f6806c0ce98daaa2e7f4a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 13f5a4fe27a349c2965cbe7935505072fe4ae3f8 https://github.com/Perl/perl5/commit/13f5a4fe27a349c2965cbe7935505072fe4ae3f8 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 7a87ea4b875db10e27d211a9c11224b3b9cca1ba https://github.com/Perl/perl5/commit/7a87ea4b875db10e27d211a9c11224b3b9cca1ba Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8d052e388f346b3033c5b739af892ac6da3665cf https://github.com/Perl/perl5/commit/8d052e388f346b3033c5b739af892ac6da3665cf Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 111fbdaed8b5c13c1f36fcf4571b2fa302bad24c https://github.com/Perl/perl5/commit/111fbdaed8b5c13c1f36fcf4571b2fa302bad24c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M utf8.h Log Message: ----------- silence utf8.h warning Commit: eeb1c98c6d1464e74ebb25128e1266459361bbe1 https://github.com/Perl/perl5/commit/eeb1c98c6d1464e74ebb25128e1266459361bbe1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: ed8b33d68731388e33d27cd4dae6270ca13e17a7 https://github.com/Perl/perl5/commit/ed8b33d68731388e33d27cd4dae6270ca13e17a7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9e08477efd7d2c1e03771693d5ceaa8b84b224ee https://github.com/Perl/perl5/commit/9e08477efd7d2c1e03771693d5ceaa8b84b224ee Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Don't over allocate array This previously added an extraneous unused element. Commit: 09be8b082e329d78f33b8cc861636fc060124a38 https://github.com/Perl/perl5/commit/09be8b082e329d78f33b8cc861636fc060124a38 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 890324f71d2d47ff4379dd8231f887b4b7cb3396 https://github.com/Perl/perl5/commit/890324f71d2d47ff4379dd8231f887b4b7cb3396 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b62826918717335701264225e3250974baa960e1 https://github.com/Perl/perl5/commit/b62826918717335701264225e3250974baa960e1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6ebec6665fe04b407946f9958df4e90594cb0320 https://github.com/Perl/perl5/commit/6ebec6665fe04b407946f9958df4e90594cb0320 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: efb7737360a61e1bee4a1705afa90194728e29da https://github.com/Perl/perl5/commit/efb7737360a61e1bee4a1705afa90194728e29da Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 582d2d691988d9b0dee7b97c138b9bb8b923a4e3 https://github.com/Perl/perl5/commit/582d2d691988d9b0dee7b97c138b9bb8b923a4e3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- S_find_locale_from_environment(): Add comments Commit: 363fa93657ae4226590b1fea017c9450dfbd43ed https://github.com/Perl/perl5/commit/363fa93657ae4226590b1fea017c9450dfbd43ed Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: cc0256f5d4c32c75faa505a389c5231f0b4dba95 https://github.com/Perl/perl5/commit/cc0256f5d4c32c75faa505a389c5231f0b4dba95 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f9ac4a92ec288137e42db569c9c41c50ceaf4f83 https://github.com/Perl/perl5/commit/f9ac4a92ec288137e42db569c9c41c50ceaf4f83 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 4f702680e1315e170ef27570947a42271025479f https://github.com/Perl/perl5/commit/4f702680e1315e170ef27570947a42271025479f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_2008_i: Improve debug statements Commit: efd565151330953cf710ca8076311c7e1bca9b9b https://github.com/Perl/perl5/commit/efd565151330953cf710ca8076311c7e1bca9b9b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b3f9f32325a37fa37cd8aa1e8ddea496616f43f3 https://github.com/Perl/perl5/commit/b3f9f32325a37fa37cd8aa1e8ddea496616f43f3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: adfb190106a2b2fb5de5a4cd9e942eecc401d7b9 https://github.com/Perl/perl5/commit/adfb190106a2b2fb5de5a4cd9e942eecc401d7b9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move declaration closer to first use Commit: f4fa61b327d3e109478ea859b76f3622c9f38475 https://github.com/Perl/perl5/commit/f4fa61b327d3e109478ea859b76f3622c9f38475 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 162924f6c58f5c8aa6a5ae2793a76c775f9024b9 https://github.com/Perl/perl5/commit/162924f6c58f5c8aa6a5ae2793a76c775f9024b9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 7412d5b52649717ca51cd0b729d283996a913474 https://github.com/Perl/perl5/commit/7412d5b52649717ca51cd0b729d283996a913474 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 776d1c2b6af9687a71fd70069aad35099054c52d https://github.com/Perl/perl5/commit/776d1c2b6af9687a71fd70069aad35099054c52d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 44399c5b31c8e0925e8cc919816379a6cb85c86e https://github.com/Perl/perl5/commit/44399c5b31c8e0925e8cc919816379a6cb85c86e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Combine debugging lines This information is a subset of a debug statement just prior to it. Commit: 2ee8dd9a9960e95b3bef6308df0e364e960d6a36 https://github.com/Perl/perl5/commit/2ee8dd9a9960e95b3bef6308df0e364e960d6a36 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9430407ad5e474572dd204df8d59874169abf85a https://github.com/Perl/perl5/commit/9430407ad5e474572dd204df8d59874169abf85a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- S_update_PL_curlocales_i(): Reverse order of conditionals The new ordering will play better with future commits Commit: e233d27f4b0a59095b9ea63dd8229ebaf9fe0db7 https://github.com/Perl/perl5/commit/e233d27f4b0a59095b9ea63dd8229ebaf9fe0db7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c M perl.h Log Message: ----------- locale.c: Update comments, white-space in 2 functions Commit: dc4dfaf9c6b53dec50633868020125f5bae7df4e https://github.com/Perl/perl5/commit/dc4dfaf9c6b53dec50633868020125f5bae7df4e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 210a91b1d7a3324ca3605b65b668c140fe366630 https://github.com/Perl/perl5/commit/210a91b1d7a3324ca3605b65b668c140fe366630 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 13267bafe406190fdbaf385a1cbcb4c13fca2672 https://github.com/Perl/perl5/commit/13267bafe406190fdbaf385a1cbcb4c13fca2672 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f6f99724588d62308af2c3520439cf00638a8377 https://github.com/Perl/perl5/commit/f6f99724588d62308af2c3520439cf00638a8377 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- S_parse_LC_ALL_string(): Add parameter This tells the function to panic instead of returning failure upon encountering an error. Commit: d7e8e4121313f33f1b87455b7a87e36f5ad8d259 https://github.com/Perl/perl5/commit/d7e8e4121313f33f1b87455b7a87e36f5ad8d259 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: e0c3f3f40eec688ce77402eb8f44ccbcf51edeac https://github.com/Perl/perl5/commit/e0c3f3f40eec688ce77402eb8f44ccbcf51edeac Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 5994132199792824e07c2c35f6d6862f8d5d912c https://github.com/Perl/perl5/commit/5994132199792824e07c2c35f6d6862f8d5d912c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 38a4225311b828d29edf84a1df7fcc6b9efed42f https://github.com/Perl/perl5/commit/38a4225311b828d29edf84a1df7fcc6b9efed42f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 27f1dd5bce89a269164c9cd7c0e6466b368e4f03 https://github.com/Perl/perl5/commit/27f1dd5bce89a269164c9cd7c0e6466b368e4f03 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b2a4dc4407855dad6b1417f8357d2e82cd644cb5 https://github.com/Perl/perl5/commit/b2a4dc4407855dad6b1417f8357d2e82cd644cb5 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Avoid a duplicate conditional Commit: 2e43dfee5d6300b7af85892a4090bd4ae236a11d https://github.com/Perl/perl5/commit/2e43dfee5d6300b7af85892a4090bd4ae236a11d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Initialize PL_cur_locale_obj Commit: 5d9f8d2370e77f5fe6fa01f7bc69ac99cdd6fd0c https://github.com/Perl/perl5/commit/5d9f8d2370e77f5fe6fa01f7bc69ac99cdd6fd0c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: a587dcda9c24794120240c9fb782ca72d7a9f59c https://github.com/Perl/perl5/commit/a587dcda9c24794120240c9fb782ca72d7a9f59c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 61cb5f7eb0a702fcc2dde84b3fd6b8e0f5c3dd9a https://github.com/Perl/perl5/commit/61cb5f7eb0a702fcc2dde84b3fd6b8e0f5c3dd9a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 65b6c143bf35707a6947ace9b46bd866782c53d7 https://github.com/Perl/perl5/commit/65b6c143bf35707a6947ace9b46bd866782c53d7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 60878dd6d09f2dbec71e2f939a989dd7ea747577 https://github.com/Perl/perl5/commit/60878dd6d09f2dbec71e2f939a989dd7ea747577 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 1df71509d92f337c944dc2a07c76801cc6b493ce https://github.com/Perl/perl5/commit/1df71509d92f337c944dc2a07c76801cc6b493ce Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9b8014064ce5cf59f59cfe3774daa8ec83ada046 https://github.com/Perl/perl5/commit/9b8014064ce5cf59f59cfe3774daa8ec83ada046 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: eb9517aa98146d4919645d2f6e074b6ca7bb5a4d https://github.com/Perl/perl5/commit/eb9517aa98146d4919645d2f6e074b6ca7bb5a4d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Remove no longer used macro Commit: fec6eb28fad70aea08c791e76d5a5a814be156bb https://github.com/Perl/perl5/commit/fec6eb28fad70aea08c791e76d5a5a814be156bb Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 98812073429169fb4bff4e983d0b698c45d82319 https://github.com/Perl/perl5/commit/98812073429169fb4bff4e983d0b698c45d82319 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 2621995a16bf2a503b5312ebf3c9e8da5f5ca34f https://github.com/Perl/perl5/commit/2621995a16bf2a503b5312ebf3c9e8da5f5ca34f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: c75e8a6a56fce3b39c11be99dac46f0a16a011f0 https://github.com/Perl/perl5/commit/c75e8a6a56fce3b39c11be99dac46f0a16a011f0 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Rmv unexecuted statement after croak Commit: 1f6ae2959583bf11ffbadff51d2abc54c89fc66f https://github.com/Perl/perl5/commit/1f6ae2959583bf11ffbadff51d2abc54c89fc66f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 27001c1f20899ac87d2110b84139abff94237914 https://github.com/Perl/perl5/commit/27001c1f20899ac87d2110b84139abff94237914 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- XXX introductory file comments Commit: b7e46b386a038a93ab7244d1539084cf64c72a70 https://github.com/Perl/perl5/commit/b7e46b386a038a93ab7244d1539084cf64c72a70 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 9ca4281ada12abfbf3552b60ec4da6531d27751d https://github.com/Perl/perl5/commit/9ca4281ada12abfbf3552b60ec4da6531d27751d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 1435814699b3e5a3aacef0a6022d5385d46926d3 https://github.com/Perl/perl5/commit/1435814699b3e5a3aacef0a6022d5385d46926d3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 03d48adb30efdbbadf79892f1d52d446d5a276fc https://github.com/Perl/perl5/commit/03d48adb30efdbbadf79892f1d52d446d5a276fc Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 926f7340da6561294b98888e569c382ace30bd50 https://github.com/Perl/perl5/commit/926f7340da6561294b98888e569c382ace30bd50 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8a3d542fd24dcaccc829bbaff61dec33a37c4d29 https://github.com/Perl/perl5/commit/8a3d542fd24dcaccc829bbaff61dec33a37c4d29 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 58ce5566df4ce798ca53a16b1c3e8479e5379e66 https://github.com/Perl/perl5/commit/58ce5566df4ce798ca53a16b1c3e8479e5379e66 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- perlapi: Improve wording for Perl_langinfo() Commit: fd67b8b3542ef541cc7a759a332d8f0a90322cdc https://github.com/Perl/perl5/commit/fd67b8b3542ef541cc7a759a332d8f0a90322cdc Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 65de17b64659edf2761c625080e1632333cd0665 https://github.com/Perl/perl5/commit/65de17b64659edf2761c625080e1632333cd0665 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0a6af30b4c2b609e9b7ee8b7672c3fdee0a5f74b https://github.com/Perl/perl5/commit/0a6af30b4c2b609e9b7ee8b7672c3fdee0a5f74b Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- S_stdize_locale: Set errno if fails Commit: 2ea8a0455b49c864abe4f17b6b7f2da92f46b537 https://github.com/Perl/perl5/commit/2ea8a0455b49c864abe4f17b6b7f2da92f46b537 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: e0db7469f2df8354433c929502555059e2c406d8 https://github.com/Perl/perl5/commit/e0db7469f2df8354433c929502555059e2c406d8 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 5b5505cf835042acd27810263cf9bef4df6d9c77 https://github.com/Perl/perl5/commit/5b5505cf835042acd27810263cf9bef4df6d9c77 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: 717f9ca4b62c864a00da83fb1a99f050e9ffb2d4 https://github.com/Perl/perl5/commit/717f9ca4b62c864a00da83fb1a99f050e9ffb2d4 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- locale.c: make querylocale locking conditional Commit: 3ffb2e95e6f01697afeb3a894ef39ed07cd28d71 https://github.com/Perl/perl5/commit/3ffb2e95e6f01697afeb3a894ef39ed07cd28d71 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M intrpvar.h Log Message: ----------- intrpvar.h: Comments Commit: 2adaa46783cb69fe755a73decfb65d576452d92a https://github.com/Perl/perl5/commit/2adaa46783cb69fe755a73decfb65d576452d92a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: baebb4369226eca2acdaf84aa2c5d0af9c16ab03 https://github.com/Perl/perl5/commit/baebb4369226eca2acdaf84aa2c5d0af9c16ab03 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8cddc9788d8ee8a347c1637915a1bca7751adb4c https://github.com/Perl/perl5/commit/8cddc9788d8ee8a347c1637915a1bca7751adb4c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 8332e375d3757a731d139299f2fa0429300f3692 https://github.com/Perl/perl5/commit/8332e375d3757a731d139299f2fa0429300f3692 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f27ea67c8318c7d9f8344ab01eaeaba87f78511d https://github.com/Perl/perl5/commit/f27ea67c8318c7d9f8344ab01eaeaba87f78511d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M Configure M locale.c M metaconfig.h M perl.h Log Message: ----------- f Configure Commit: 3401202206c28be3907d746f8a22db70676a17fb https://github.com/Perl/perl5/commit/3401202206c28be3907d746f8a22db70676a17fb Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M Configure M locale.c M metaconfig.h M perl.h Log Message: ----------- Revert "f Configure" This reverts commit 12d2cfd3fbf933bbbfb52a448d8bdda62f7ac100. Commit: e84ccf9a06f74bade2d66e71e6bbac0babf14ff7 https://github.com/Perl/perl5/commit/e84ccf9a06f74bade2d66e71e6bbac0babf14ff7 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl Log Message: ----------- drop when Configure fixed Commit: 3ab554b5673c0718ca051f6e52a224b5071d13cd https://github.com/Perl/perl5/commit/3ab554b5673c0718ca051f6e52a224b5071d13cd Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity Commit: 7a15e88f3a896d9ed21259a4856bf1f4299d565c https://github.com/Perl/perl5/commit/7a15e88f3a896d9ed21259a4856bf1f4299d565c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: Move comment Commit: 1d9a51ccb1949cfe56931ad3a0ef617c49db4b41 https://github.com/Perl/perl5/commit/1d9a51ccb1949cfe56931ad3a0ef617c49db4b41 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl Log Message: ----------- Maybe drop: makedef.pl: Move code Commit: 262a1c7fda909b046535bced379db81f6bec0c1f https://github.com/Perl/perl5/commit/262a1c7fda909b046535bced379db81f6bec0c1f Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: Remove obsolete symbol Commit: c96d4f9d19f5a42a203c2eaff233fbb8c1f40b42 https://github.com/Perl/perl5/commit/c96d4f9d19f5a42a203c2eaff233fbb8c1f40b42 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: ee430f0310b98c17487441e2b465bbb482036632 https://github.com/Perl/perl5/commit/ee430f0310b98c17487441e2b465bbb482036632 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 477ef8e7b19055bc03f8871055bd08e3f1bfe052 https://github.com/Perl/perl5/commit/477ef8e7b19055bc03f8871055bd08e3f1bfe052 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: 80717918eaa3677750329815cf984fad0edaef4d https://github.com/Perl/perl5/commit/80717918eaa3677750329815cf984fad0edaef4d Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h: Add detail to locale mutex debug Commit: e3e24d6fe1b987228524c33efbaa84c04a6aed71 https://github.com/Perl/perl5/commit/e3e24d6fe1b987228524c33efbaa84c04a6aed71 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c M perl.h Log Message: ----------- XXX remaining loose ends Commit: bc25cb0deb636ca1c3f2aae13c2d6425154fd8cd https://github.com/Perl/perl5/commit/bc25cb0deb636ca1c3f2aae13c2d6425154fd8cd Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M cpan/version/t/07locale.t M pod/perlembed.pod M t/porting/customized.dat Log Message: ----------- final commit Commit: 11c447d2096f40daf90563e7150d356aa2e571e3 https://github.com/Perl/perl5/commit/11c447d2096f40daf90563e7150d356aa2e571e3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- use enum, maybe drop Commit: 87ac425c4ec8182ee84468f7ecfba8872ef79d0e https://github.com/Perl/perl5/commit/87ac425c4ec8182ee84468f7ecfba8872ef79d0e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- Revert "prev commit" This reverts commit 4be10ec67fb8fef94cb573a8f7b51cb23610517f. Commit: 2ade128e1771bdeb32c7435e2809fcc6dc3d273a https://github.com/Perl/perl5/commit/2ade128e1771bdeb32c7435e2809fcc6dc3d273a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M locale.c M proto.h Log Message: ----------- more cat index enum Commit: cf139a29cdeb7390c74091f88a3843ff12abe136 https://github.com/Perl/perl5/commit/cf139a29cdeb7390c74091f88a3843ff12abe136 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 6401991d02b483882b64b625d7fd234c349b8d75 https://github.com/Perl/perl5/commit/6401991d02b483882b64b625d7fd234c349b8d75 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- f Commit: d8b08eabce06369911cc9f98a94c94ff7ab27cf1 https://github.com/Perl/perl5/commit/d8b08eabce06369911cc9f98a94c94ff7ab27cf1 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h fixup Commit: 78bbb29573f46bb9ca9fb3ee177bdc43c93b86ea https://github.com/Perl/perl5/commit/78bbb29573f46bb9ca9fb3ee177bdc43c93b86ea Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M Configure Log Message: ----------- f Configure for positional Commit: 63dc49fd14833e4ccf07e781693d7b8c1b2a6d91 https://github.com/Perl/perl5/commit/63dc49fd14833e4ccf07e781693d7b8c1b2a6d91 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- fixup init for C C C C C Commit: f8626d3f6c4487125d3156bf253a6af89f222d94 https://github.com/Perl/perl5/commit/f8626d3f6c4487125d3156bf253a6af89f222d94 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M locale.c Log Message: ----------- perlapi: Fix strftime inaccuracies, clarify Commit: 4dd79b38d02b4a3ed64bb05e98b1c08252bfed6e https://github.com/Perl/perl5/commit/4dd79b38d02b4a3ed64bb05e98b1c08252bfed6e Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 20dc32f0af769a12f07ec1c2329885f7260480c9 https://github.com/Perl/perl5/commit/20dc32f0af769a12f07ec1c2329885f7260480c9 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: 3a5a79c348580a58116c31600f2d6bb965a8ab61 https://github.com/Perl/perl5/commit/3a5a79c348580a58116c31600f2d6bb965a8ab61 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0d91ed91ca368b7ef4ceac62ecfd5cf601dbee49 https://github.com/Perl/perl5/commit/0d91ed91ca368b7ef4ceac62ecfd5cf601dbee49 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/threads/threads.xs M embed.fnc M locale.c M perl.h M proto.h M util.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. Commit: c13fdc4e05e7ccccd742f0c119ac646221e1a32c https://github.com/Perl/perl5/commit/c13fdc4e05e7ccccd742f0c119ac646221e1a32c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: d6590fb86b075d43ce307b8e54c16dcbd34a7eb4 https://github.com/Perl/perl5/commit/d6590fb86b075d43ce307b8e54c16dcbd34a7eb4 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 7e6ee9dd64a84930ae927600c85d2aad90b1977a https://github.com/Perl/perl5/commit/7e6ee9dd64a84930ae927600c85d2aad90b1977a Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 0b00964284cdef7a1acb18d5e6247ea35113946c https://github.com/Perl/perl5/commit/0b00964284cdef7a1acb18d5e6247ea35113946c Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: f95932b1e1179019d1614d8847a548ba43d20294 https://github.com/Perl/perl5/commit/f95932b1e1179019d1614d8847a548ba43d20294 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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 M embed.fnc M embed.h M ext/POSIX/POSIX.xs M ext/POSIX/t/time.t M locale.c M proto.h Log Message: ----------- Time::Piece: Use core function to implement strftime_ This functionality is thread-safe and takes care of all worries about UTF-8. To use it, the charmap is changed to pass this an SV* instead of a char* Commit: 98fd981ac0bbfbd8b270e95b7f35c79fec7dd456 https://github.com/Perl/perl5/commit/98fd981ac0bbfbd8b270e95b7f35c79fec7dd456 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/threads/threads.xs M intrpvar.h M locale.c M makedef.pl M sv.c Log Message: ----------- f locale Commit: 98dfe179fc89ea6115c1bc935dc7db3387027454 https://github.com/Perl/perl5/commit/98dfe179fc89ea6115c1bc935dc7db3387027454 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: b743a1eacc3d21edcb3c2425111cd9a4421c8356 https://github.com/Perl/perl5/commit/b743a1eacc3d21edcb3c2425111cd9a4421c8356 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 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: 38325169f8bb75d2a4f0e9f45f709d944f4dd949 https://github.com/Perl/perl5/commit/38325169f8bb75d2a4f0e9f45f709d944f4dd949 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M perl.h Log Message: ----------- perl.h: Remove extraneous ';' Commit: e15e67220989aa2afac3bee2652b7a7060d9e9d3 https://github.com/Perl/perl5/commit/e15e67220989aa2afac3bee2652b7a7060d9e9d3 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M ext/POSIX/t/time.t Log Message: ----------- XXX see how affects earlier commits: time.t: Add more strftime tests Commit: e6a2f0318c090de366f433a336b83272ba9a2720 https://github.com/Perl/perl5/commit/e6a2f0318c090de366f433a336b83272ba9a2720 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-12 (Fri, 12 May 2023) Changed paths: M dist/threads/threads.xs Log Message: ----------- XXX threads.xs: Move #ifdef to beginning of file XXX saves an interior ifdef, but unsure if worth it. Commit: 1222c7e2f497eb6f48c33dd66f61ed61539a9d91 https://github.com/Perl/perl5/commit/1222c7e2f497eb6f48c33dd66f61ed61539a9d91 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-14 (Sun, 14 May 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: bf8bedc39e0ddfb0642ba9800cbdd152d6c6c504 https://github.com/Perl/perl5/commit/bf8bedc39e0ddfb0642ba9800cbdd152d6c6c504 Author: Karl Williamson <k...@cpan.org> Date: 2023-05-14 (Sun, 14 May 2023) Changed paths: M embed.fnc M embed.h M locale.c M perl.h M proto.h M vutil.c Log Message: ----------- foo Compare: https://github.com/Perl/perl5/compare/327bc0fc260a...bf8bedc39e0d