Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: c31826091734c03309bf6052a20ca2175f97feab https://github.com/Perl/perl5/commit/c31826091734c03309bf6052a20ca2175f97feab Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023)
Changed paths: M lib/unicore/Makefile M lib/unicore/mktables Log Message: ----------- mktables more verbose Commit: 90b852ceb13123ddc1e1e47f00ac404dd4b9d916 https://github.com/Perl/perl5/commit/90b852ceb13123ddc1e1e47f00ac404dd4b9d916 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: 69e645cbc0789ec530f209514903cece151414e1 https://github.com/Perl/perl5/commit/69e645cbc0789ec530f209514903cece151414e1 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: db1416a3f6ea6a49a0508950128b15f339b53448 https://github.com/Perl/perl5/commit/db1416a3f6ea6a49a0508950128b15f339b53448 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: c053a462cc6c77870cf20913c19b54f9c02843b2 https://github.com/Perl/perl5/commit/c053a462cc6c77870cf20913c19b54f9c02843b2 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: a39348c5bf9d913a08231f210ac3351ef6537a41 https://github.com/Perl/perl5/commit/a39348c5bf9d913a08231f210ac3351ef6537a41 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/TEST Log Message: ----------- XXX skip cpan testing Commit: 605c511b377bfbbdf799d392dcf508872626e50e https://github.com/Perl/perl5/commit/605c511b377bfbbdf799d392dcf508872626e50e Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: d7db01c7e8f140c506678ccc7a173bf35970e09b https://github.com/Perl/perl5/commit/d7db01c7e8f140c506678ccc7a173bf35970e09b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 780191894a465aafecfda4565566f19b8d9b57a4 https://github.com/Perl/perl5/commit/780191894a465aafecfda4565566f19b8d9b57a4 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 8744e5bd0484b906668a3fae2ebb29037a43d803 https://github.com/Perl/perl5/commit/8744e5bd0484b906668a3fae2ebb29037a43d803 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/test.pl Log Message: ----------- XXX test.pl: dont unlink temps Commit: 9ece0b37026c616b4c0b7f5aa6ab4a455cefc8fd https://github.com/Perl/perl5/commit/9ece0b37026c616b4c0b7f5aa6ab4a455cefc8fd Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/test.pl Log Message: ----------- Revert "XXX test.pl: dont unlink temps" This reverts commit 1579ce0dbce549cb594214ba27d4e2fa389f891b. Commit: aeb178efc4f373415e9a74fb3854bd7538a68eca https://github.com/Perl/perl5/commit/aeb178efc4f373415e9a74fb3854bd7538a68eca Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 6828c09c6714ae32fc7cda686792fddd3d9beda7 https://github.com/Perl/perl5/commit/6828c09c6714ae32fc7cda686792fddd3d9beda7 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: 401883da45255f0b584b4803939e6458fb615ad7 https://github.com/Perl/perl5/commit/401883da45255f0b584b4803939e6458fb615ad7 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/version/t/07locale.t M t/porting/customized.dat Log Message: ----------- version::07locale.t: Use I18N::Langinfo, not POSIX::localeconv() The former is always present; the latter might not be. Commit: 9ff858a169bba30e93420556a7f7bb28f0e8257d https://github.com/Perl/perl5/commit/9ff858a169bba30e93420556a7f7bb28f0e8257d Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t prob. due to 5.38 tag issue Commit: 5919ee94d45df3562544a7b4c2693a9bc86c8e47 https://github.com/Perl/perl5/commit/5919ee94d45df3562544a7b4c2693a9bc86c8e47 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/version/t/07locale.t M t/porting/customized.dat 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: 318c70c80d4d0effb8da7efeafcac9a3d271fa03 https://github.com/Perl/perl5/commit/318c70c80d4d0effb8da7efeafcac9a3d271fa03 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: eef79121ada69052ed8f73604dfdc560870f604b https://github.com/Perl/perl5/commit/eef79121ada69052ed8f73604dfdc560870f604b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: 5d9ff70ea7272b2b570016e4039a60b29480bb49 https://github.com/Perl/perl5/commit/5d9ff70ea7272b2b570016e4039a60b29480bb49 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: 9ba7e558cb2c0145ce3dee730e8ca2bd72f0a274 https://github.com/Perl/perl5/commit/9ba7e558cb2c0145ce3dee730e8ca2bd72f0a274 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: e0b8409cb6783866c4f83fbe718eda67026d469a https://github.com/Perl/perl5/commit/e0b8409cb6783866c4f83fbe718eda67026d469a Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: 30c54ba3f3607d70586ae1f8ab22c60a91769b1a https://github.com/Perl/perl5/commit/30c54ba3f3607d70586ae1f8ab22c60a91769b1a Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: e9a990d83bbc50b5b7cc5c8ad2d36e2697ffa5a3 https://github.com/Perl/perl5/commit/e9a990d83bbc50b5b7cc5c8ad2d36e2697ffa5a3 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- ruler Commit: 6aa5ae01ea883e2b4d5a31cb011de9bfc3a2bb44 https://github.com/Perl/perl5/commit/6aa5ae01ea883e2b4d5a31cb011de9bfc3a2bb44 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: fdf6d126af4a3ffc7722ccf070de655ae3fe0d30 https://github.com/Perl/perl5/commit/fdf6d126af4a3ffc7722ccf070de655ae3fe0d30 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 15698362bc4cbffa27cb66b28648fbb0d9dee528 https://github.com/Perl/perl5/commit/15698362bc4cbffa27cb66b28648fbb0d9dee528 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 1f4204699738ecc54d9f0e50371fdf2f108d5cdb https://github.com/Perl/perl5/commit/1f4204699738ecc54d9f0e50371fdf2f108d5cdb Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 5de9c1b4442d496c070921fd754c1e14bbb9586b https://github.com/Perl/perl5/commit/5de9c1b4442d496c070921fd754c1e14bbb9586b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: 88e5500435b4601eb5aa0e08726f89cb4e0905a4 https://github.com/Perl/perl5/commit/88e5500435b4601eb5aa0e08726f89cb4e0905a4 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: d44680142722feffae40e9be47ea20a2183678eb https://github.com/Perl/perl5/commit/d44680142722feffae40e9be47ea20a2183678eb Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 52c9e8bd85e5e064e75e2a080d2f1fe473e32519 https://github.com/Perl/perl5/commit/52c9e8bd85e5e064e75e2a080d2f1fe473e32519 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: 09f1af1dbff5f6c38d4dcd8611857758c5d3c3fa https://github.com/Perl/perl5/commit/09f1af1dbff5f6c38d4dcd8611857758c5d3c3fa Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: ce22e4f8941d964996a42dda198568bb2809161d https://github.com/Perl/perl5/commit/ce22e4f8941d964996a42dda198568bb2809161d Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: d0e912bef2a94f5aad4a75df03e9c7d272bc7fe0 https://github.com/Perl/perl5/commit/d0e912bef2a94f5aad4a75df03e9c7d272bc7fe0 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: 94e667ee717c1fb917b2a0cd0fb636249efff425 https://github.com/Perl/perl5/commit/94e667ee717c1fb917b2a0cd0fb636249efff425 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/version/t/07locale.t M t/porting/customized.dat 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: e1d2a21d1423f2db7b88218cfc995d5e6dc6c3c0 https://github.com/Perl/perl5/commit/e1d2a21d1423f2db7b88218cfc995d5e6dc6c3c0 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- drop, bug have to recompute md5 Commit: 276f10c642984129f360073f1df2f2d3e7582bc9 https://github.com/Perl/perl5/commit/276f10c642984129f360073f1df2f2d3e7582bc9 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: 3f3ca43811ae00e2a6264d6cfb6947a9be3f6c74 https://github.com/Perl/perl5/commit/3f3ca43811ae00e2a6264d6cfb6947a9be3f6c74 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- 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 then run print POSIX::setlocale(LC_NUMERIC, ""); It wouldn't know how to extract just the LC_NUMERIC part of the LC_ALL string. There is no test added because I didn't find a shell that allows setting LC_ALL to such a disparate value. Commit: 7c0493b9f11a943137780cd2dea16bfa9d0f6036 https://github.com/Perl/perl5/commit/7c0493b9f11a943137780cd2dea16bfa9d0f6036 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: e2c7ac23dd92e8f4a9fb82ec0b80436186be0677 https://github.com/Perl/perl5/commit/e2c7ac23dd92e8f4a9fb82ec0b80436186be0677 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: 5ad40d075a69373cb781a721818e6ccc683aee80 https://github.com/Perl/perl5/commit/5ad40d075a69373cb781a721818e6ccc683aee80 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: edc900824912b99c245330e0bd26c995bff99271 https://github.com/Perl/perl5/commit/edc900824912b99c245330e0bd26c995bff99271 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: a8129f6bd3e3259f71cd02ab8d729296fa37753a https://github.com/Perl/perl5/commit/a8129f6bd3e3259f71cd02ab8d729296fa37753a Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 68f113101ca35d504174b76d3bd12305418da6ed https://github.com/Perl/perl5/commit/68f113101ca35d504174b76d3bd12305418da6ed Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: b337d4f57d7578f589becbaa1568790241c42677 https://github.com/Perl/perl5/commit/b337d4f57d7578f589becbaa1568790241c42677 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: 79dd621aadfefd7c99c011870f04c1a2527774b1 https://github.com/Perl/perl5/commit/79dd621aadfefd7c99c011870f04c1a2527774b1 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pp.c Log Message: ----------- pp.c Commit: 7abd454828ed91776cd14227b2140a7fee19c934 https://github.com/Perl/perl5/commit/7abd454828ed91776cd14227b2140a7fee19c934 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: 35fa9079223581c66a1fc4fb0a7bb406531596df https://github.com/Perl/perl5/commit/35fa9079223581c66a1fc4fb0a7bb406531596df Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M hints/freebsd.sh Log Message: ----------- Enable thread-safe locales on some freebsd versions This had been disabled in the hints file due to bugs, which perl now works around, so reenable (and reformat some lines for clarity) Commit: f48d5843c56f269c2d338681ac6c226975e7ec06 https://github.com/Perl/perl5/commit/f48d5843c56f269c2d338681ac6c226975e7ec06 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: bec68c1c2106712dbda085dceef302f575a3ed9a https://github.com/Perl/perl5/commit/bec68c1c2106712dbda085dceef302f575a3ed9a Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: 81e508d6c430881c82e08674abf69ea75ff9d945 https://github.com/Perl/perl5/commit/81e508d6c430881c82e08674abf69ea75ff9d945 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: ab64b8786e4e033bf0d9ffc1622e590d8649b78b https://github.com/Perl/perl5/commit/ab64b8786e4e033bf0d9ffc1622e590d8649b78b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat for before Time Piece Commit: a100806099fca93a986b2f755686f01908a5a2be https://github.com/Perl/perl5/commit/a100806099fca93a986b2f755686f01908a5a2be Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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 pod/perlvar.pod M proto.h M sv.c Log Message: ----------- Add ability to emulate thread-safe locale operations Locale information was originally global for an entire process. Later, it was realized that different threads could want to be running in different locales. Windows added this ability, and POSIX 2008 followed suit (though using a completely different API). When available, perl automatically uses these capabilities. But many platforms have neither, or their implementation, such as on Darwin, is buggy. This commit adds the capability for Perl programs to operate as if the platform were thread-safe. This implementation is based on the observation that the underlying locale matters only to relatively few libc calls, and only during their execution. It can be anything at all at any other time. perl keeps what the proper locale should be for each category in a a per-thread array. Each locale-dependent operation must be wrapped in mutex lock/unlock operations. The lock additionally compares what libc knows the locale to be, and what it should be for this thread at this time, and changes the actual locale to the proper value if necessary. That's all that is needed. This commit adds macros to perl.h, for example "MBTOWC_LOCK_", that expand to do the mutex lock, and change the global locale to the expected value. On perls built without this emulation capability, they are no-ops. All code in the perl core (unless I've missed something), are changed to use these macros (there weren't actually many places that needed this). Thus, any pure perl program will automatically become locale-thread-safe under this Configuration. In order for XS code to also become locale-thread-safe, it must use these macros to wrap calls to locale-dependent functions. Relatively few modules call such functions. For example, the only one I found that ships with the perl core is Time::Piece, and it has more fundamental issues with running under threads than this. I am preparing pull requests for it. Thus, this is not completely transparent to code like native-thread-safe locale handling is. Therefore ${^SAFE_LOCALES} returns 2 (instead of 1) for this type of thread-safety. Another deficiency compared to the native thread safety is when a thread calls a non-perl library that accesses the locale. The typical example is Gtk (though this particular application can be configured to not be problematic). With the native safe threads, everything works as long as only one such thread is used per Perl program. That thread would then be the only one operating in the global locale, hence there are no conflicts. With this emulation, all threads are operating in the global locale, and mutexes would have to be used to prevent conflicts. To minimize those, the code added in this commit restores the global locale when through to the state it was in when started. A major concern is the performance impact. This is after all trading speed for accuracy. lib/locale_threads.t is noticeably slower when this is being used. But that is doing multiple threads constantly using locale-dependent operations. I don't notice any change with the rest of the test suite. In pure perl, this only comes into play while in the scope of 'use locale' or when using some of the few POSIX:: functions that are locale-dependent. And to some extent when formatting, but the regular overhead there should dwarf what this adds. This commit leaves this feature off by default. The next commit changes that for the next few 5.39 development releases, so we can see if there is actually an issue. Commit: 2c19d530ca9c5e64289dd839780d40caf1023d56 https://github.com/Perl/perl5/commit/2c19d530ca9c5e64289dd839780d40caf1023d56 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c M makedef.pl M perl.h Log Message: ----------- Experimentally enable per-thread locale emulation This is set to end in 5.39.10, but will give us field experience in the meantime. Commit: 17eed8ab062b653035556b004fe3d59bdc983db7 https://github.com/Perl/perl5/commit/17eed8ab062b653035556b004fe3d59bdc983db7 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- XXX perl.h maybe drop Commit: 049b7e9a0abd0d15a99274083d639a385e4008c9 https://github.com/Perl/perl5/commit/049b7e9a0abd0d15a99274083d639a385e4008c9 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: PL_cur_locale_obj is only POSIX 2008 multiplicity Commit: 63a5c03f7acb4308288468f3cd3ff61b551d6761 https://github.com/Perl/perl5/commit/63a5c03f7acb4308288468f3cd3ff61b551d6761 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M makedef.pl Log Message: ----------- makedef.pl: Move comment Commit: 146a928849c733e247e1bbcd3d38365af30b13c1 https://github.com/Perl/perl5/commit/146a928849c733e247e1bbcd3d38365af30b13c1 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: 23cafd0b8ad7a6f9c1488fa44b586f43fd7f0470 https://github.com/Perl/perl5/commit/23cafd0b8ad7a6f9c1488fa44b586f43fd7f0470 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: 344af8f66dc8fb5cef1b8ebeaeb8dfb7efb1d4ca https://github.com/Perl/perl5/commit/344af8f66dc8fb5cef1b8ebeaeb8dfb7efb1d4ca Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: 8344632c461d82b84270848c55254e1fa9556039 https://github.com/Perl/perl5/commit/8344632c461d82b84270848c55254e1fa9556039 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 8422f36e4f2837cc8c2f6b1b4da1bb62ccbd0967 https://github.com/Perl/perl5/commit/8422f36e4f2837cc8c2f6b1b4da1bb62ccbd0967 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: Use foldEQ_locale() if available This core function available since 5.13.2 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 substitute, but far better than nothing. Commit: 7b16cba88c17a43c9186bfeadd6d6fd0e1afe8e4 https://github.com/Perl/perl5/commit/7b16cba88c17a43c9186bfeadd6d6fd0e1afe8e4 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 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: 448cad2b98fceae2083f3dd84b023afa17612fe2 https://github.com/Perl/perl5/commit/448cad2b98fceae2083f3dd84b023afa17612fe2 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: d4221a5dfecefdd5dcf106b9510a101b59483360 https://github.com/Perl/perl5/commit/d4221a5dfecefdd5dcf106b9510a101b59483360 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Time-Piece/Piece.pm M cpan/Time-Piece/Piece.xs M cpan/Time-Piece/Seconds.pm M dist/Module-CoreList/lib/Module/CoreList.pm Log Message: ----------- Time::Piece: Add critical sections This calls various macros to make certain libc calls uninterruptible, so that they can be used safely in threaded applications, when this module is loaded with a perl that supports this. The macros are defined to do nothing if the perl doesn't contain working versions of them. In such perls, the macros are also defined to do nothing except on configurations that could have races. Typically, an extra problem is that the libc calls return in a global static buffer, subject to being overwritten by another thread. But an earlier commit defined PERL_REENTRANT, which makes those functions transparently return in a thread-local buffer instead. That doesn't help if the function gets interrupted by another thread; this commit completes the process. Commit: 424c1a78b59ece80ab74e59d02d8b712cb224bdd https://github.com/Perl/perl5/commit/424c1a78b59ece80ab74e59d02d8b712cb224bdd Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: 7544fb79184cb7888acf12ffd3596cefb6a14293 https://github.com/Perl/perl5/commit/7544fb79184cb7888acf12ffd3596cefb6a14293 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: 35506ce5780a00071b4f71a044e18cb07b2057d3 https://github.com/Perl/perl5/commit/35506ce5780a00071b4f71a044e18cb07b2057d3 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Slightly change wording of DEBUG messages This makes them more consistent with the other messages in this file. Commit: d1618621f4d91b0678b1dc541ffabbe500c87895 https://github.com/Perl/perl5/commit/d1618621f4d91b0678b1dc541ffabbe500c87895 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: 647c4173e55c4a1267fb283a70692d398dfa61f6 https://github.com/Perl/perl5/commit/647c4173e55c4a1267fb283a70692d398dfa61f6 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: c2d9fe9d9fb7390ee4254ce10fb3fc9c434761bb https://github.com/Perl/perl5/commit/c2d9fe9d9fb7390ee4254ce10fb3fc9c434761bb Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: 5847254ab50e84218cc5907fca2b5c84ba211435 https://github.com/Perl/perl5/commit/5847254ab50e84218cc5907fca2b5c84ba211435 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Change some -DLv statements to -DL These debug statements show something isn't quite normal, so shouldn't require a verbose option to be displayed Commit: 6549dce896fe9c233908c7dc2c5057296d0927c3 https://github.com/Perl/perl5/commit/6549dce896fe9c233908c7dc2c5057296d0927c3 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: 6f2601b862d755f008750cb768fac0fa8bfa7e67 https://github.com/Perl/perl5/commit/6f2601b862d755f008750cb768fac0fa8bfa7e67 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: 3505d00d545c92e1bf817d8bd755ddbfd790e5bc https://github.com/Perl/perl5/commit/3505d00d545c92e1bf817d8bd755ddbfd790e5bc Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: 2eb292cec53b78d6126f6081afffde5c0afeab2d https://github.com/Perl/perl5/commit/2eb292cec53b78d6126f6081afffde5c0afeab2d Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M dist/ExtUtils-ParseXS/lib/perlxs.pod M t/porting/known_pod_issues.dat Log Message: ----------- perlxs Commit: bef504415e883e5d53cb3929ac383f615e9669b9 https://github.com/Perl/perl5/commit/bef504415e883e5d53cb3929ac383f615e9669b9 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: 9e56ccbb2382adfcaaefa201bd7f1f2bb6f78db5 https://github.com/Perl/perl5/commit/9e56ccbb2382adfcaaefa201bd7f1f2bb6f78db5 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: 4633b1cc2589ebe32c5d15b49e0d9383385e4f00 https://github.com/Perl/perl5/commit/4633b1cc2589ebe32c5d15b49e0d9383385e4f00 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: e0fb69ca976bac85f7114acafb293f1a058a795e https://github.com/Perl/perl5/commit/e0fb69ca976bac85f7114acafb293f1a058a795e Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M hints/openbsd.sh Log Message: ----------- openbsd Commit: bc5903309365ba3cf227b43956a3f3ec5d7f8709 https://github.com/Perl/perl5/commit/bc5903309365ba3cf227b43956a3f3ec5d7f8709 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M t/run/locale.t Log Message: ----------- XXX t/run/locale.t Commit: 7adc5daed73c5ec7e796ac0e07996218a9529a7f https://github.com/Perl/perl5/commit/7adc5daed73c5ec7e796ac0e07996218a9529a7f Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: ba02dfa7ee9feb7f82aefd48e41afa9e7594e3ec https://github.com/Perl/perl5/commit/ba02dfa7ee9feb7f82aefd48e41afa9e7594e3ec Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M charclass_invlists.h M lib/unicore/uni_keywords.pl M regcharclass.h M uni_keywords.h Log Message: ----------- fmktables Commit: 73165a2a13cc99ec7c2a29bf1fd3fa5b4ce10478 https://github.com/Perl/perl5/commit/73165a2a13cc99ec7c2a29bf1fd3fa5b4ce10478 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- final commit Commit: 575c8a90a0b37b0c8a17377ece87c17a92391a96 https://github.com/Perl/perl5/commit/575c8a90a0b37b0c8a17377ece87c17a92391a96 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- wrap uselocale Commit: b14334f6cff43bdf1377968603c46b19cf22f5c3 https://github.com/Perl/perl5/commit/b14334f6cff43bdf1377968603c46b19cf22f5c3 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Win32: We don't know the locale here And, so we don't know whether it is a UTF-8 locale or not. So use the proper enum value to indicate that. Commit: 384eeb8a7ef9e12133b198046b0f6fec573d7690 https://github.com/Perl/perl5/commit/384eeb8a7ef9e12133b198046b0f6fec573d7690 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M makedef.pl Log Message: ----------- XXX temp to try to get MingW to work Commit: b44275edbc1f7285e19061fd9868f1e680110301 https://github.com/Perl/perl5/commit/b44275edbc1f7285e19061fd9868f1e680110301 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- XXX more work mingw Commit: 588330a15cac20916186c46e8f9237b8a04beb8e https://github.com/Perl/perl5/commit/588330a15cac20916186c46e8f9237b8a04beb8e Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pp.c Log Message: ----------- pp Commit: b16b713052a643146bbcba0003c5ec7f7ea930af https://github.com/Perl/perl5/commit/b16b713052a643146bbcba0003c5ec7f7ea930af Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pp.c Log Message: ----------- Revert "pp" This reverts commit 1133b83f4bd637f8641d66b48abd2bf7b5525ee3. Commit: 9d362421f6c5b731b36d4c031362017019e92b95 https://github.com/Perl/perl5/commit/9d362421f6c5b731b36d4c031362017019e92b95 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M pp.c Log Message: ----------- Revert "pp.c" This reverts commit 6b8211cf799406b7044deceefb3b3f1a31515bda. Commit: f607afd0a550b0d3f75401f44495bcfa4d6263f0 https://github.com/Perl/perl5/commit/f607afd0a550b0d3f75401f44495bcfa4d6263f0 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: start of using platform locales Commit: 519d55d41ade29022ce1ab8420c5fcdb9110df7f https://github.com/Perl/perl5/commit/519d55d41ade29022ce1ab8420c5fcdb9110df7f Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M lib/locale_threads.t Log Message: ----------- Revert "locale_threads: start of using platform locales" This reverts commit a7a8dea3aabb81a05aacaf3a26c49854a5854111. Commit: dc99245d0bddde51815bd179fc7c174e35ff5253 https://github.com/Perl/perl5/commit/dc99245d0bddde51815bd179fc7c174e35ff5253 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale_table.h Log Message: ----------- Make LC_MONETARY and LC_NUMERIC indexes adjacent We have indexes we use for locale categories. The next commit will want these two to be in consecutive order, with LC_NUMERIC first. This commit just moves their definitions around. Commit: 3721fd74eb617d2e35591e29b8396e86576b1c23 https://github.com/Perl/perl5/commit/3721fd74eb617d2e35591e29b8396e86576b1c23 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale_table.h Log Message: ----------- Revert "Make LC_MONETARY and LC_NUMERIC indexes adjacent" This reverts commit 95f8de46723fbcdda0061e705e0c23ab940e4f24. Commit: 477af8aafc4c63e32bbcba12c160c83fab8c3fed https://github.com/Perl/perl5/commit/477af8aafc4c63e32bbcba12c160c83fab8c3fed Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c M perl.c M sv.c Log Message: ----------- define numeric values to be C when no USE_NUMERIC Commit: 27d72a6d62cbf6933eede4ef15d04729f90305b7 https://github.com/Perl/perl5/commit/27d72a6d62cbf6933eede4ef15d04729f90305b7 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c M perl.c M sv.c Log Message: ----------- Revert "define numeric values to be C when no USE_NUMERIC" This reverts commit 9bb7ff6531bf9e28d635a71e6d55c752a995da2d. Commit: f87a4c5a688b0a27a14e2488d03594702296694a https://github.com/Perl/perl5/commit/f87a4c5a688b0a27a14e2488d03594702296694a Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Silence some compiler warnings Commit: 55182ce5c1f6f7f85d5553baf5feb86c7bbd0ffe https://github.com/Perl/perl5/commit/55182ce5c1f6f7f85d5553baf5feb86c7bbd0ffe Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Add braces, indent code only Prior to this commit, the 'switch' immediately followed the 'if' without a left brace for the 'if'. This conserved indentation and was feasible because the scopes were identical.. But a future commit will want to have the scope of the 'if' be larger than that of the 'switch', so add the braces for the 'if' and indent the 'switch' code. Commit: 484eb56a4b1221072cd97f675fcca7e0b874da14 https://github.com/Perl/perl5/commit/484eb56a4b1221072cd97f675fcca7e0b874da14 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Simplify loop A slight restructuring saves some lines. Commit: 21dc9b136d9acd87339c9db39766ca781eb24fd0 https://github.com/Perl/perl5/commit/21dc9b136d9acd87339c9db39766ca781eb24fd0 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Change two #define names They will soon have a more general meaning than currently. Commit: 850a7559803d125fd2f9ec033322146b379f67cc https://github.com/Perl/perl5/commit/850a7559803d125fd2f9ec033322146b379f67cc Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Change parameter specification S_populate_hash_from_localeconv() takes a mask of one or two bits that specify which of LC_NUMERIC and/or LC_MONETARY to operate on. Prior to this commit, the appropriate bit was based on our internal index for the relevant category(ies). But we already have #defines of 0 for one, and 1 for the other. This commit changes to base the index on that. This will allow simplification in the next commit, and going forward. Commit: 754936ce25c7ef310ea8b7e7d0b1b64c0acd13fa https://github.com/Perl/perl5/commit/754936ce25c7ef310ea8b7e7d0b1b64c0acd13fa Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Simplify some localeconv() code The previous commits have allowed this code to determine by looking at the position of a bit in a mask what is going on, and so the code that used to be there to cope with not having that can be removed. Commit: 4a35ded8d342ccef6b2c69e5bf400149cff85e27 https://github.com/Perl/perl5/commit/4a35ded8d342ccef6b2c69e5bf400149cff85e27 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M embed.fnc M locale.c M proto.h Log Message: ----------- locale.c: Don't need a U32 Previous commits have causes only the lowest two bits in this variable to be used; don't need anything as explicit as a U32. Commit: a241d06dc144e0496e9faf930f5fdc514305b1d7 https://github.com/Perl/perl5/commit/a241d06dc144e0496e9faf930f5fdc514305b1d7 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move code to earlier in function This is in preparation for the object created here to be needed earlier. Commit: 6c980ebc31da80931d1df3fe4b7db463f84da95b https://github.com/Perl/perl5/commit/6c980ebc31da80931d1df3fe4b7db463f84da95b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Reorder some statements in a switch() This unifies the common text in two case: statements, and makes all of them do their business in the same order. This makes it easier to compare and contrast the actions of the various case:s Commit: 2a1052c625be3e8000db319511b8d293d6e51561 https://github.com/Perl/perl5/commit/2a1052c625be3e8000db319511b8d293d6e51561 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Remove unused #define Commit: 234678cad3ffae6aca3d8df90c7237098ecb3571 https://github.com/Perl/perl5/commit/234678cad3ffae6aca3d8df90c7237098ecb3571 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Add some #defines And collapse an existing one into one of the new ones, so as to use a parallel naming convention These will be used in future commits Commit: 426a8c53d783f48bf6fc5eb4f99657443e306e4b https://github.com/Perl/perl5/commit/426a8c53d783f48bf6fc5eb4f99657443e306e4b Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Special case some C locale values On Windows and MingW, some of this code can be frequently called, and often with the C locale in effect. Normally localeconv() is called to fill in these values, but that is expensive in part because of a bunch of setlocale() calls, some of which are extra, needed because of bugs in the Windows libc. We can short circuit that for the common C locale case, as the values are known at compile time. Commit: 2fe28deef9c524336bc59deb141f5ebec9f967b9 https://github.com/Perl/perl5/commit/2fe28deef9c524336bc59deb141f5ebec9f967b9 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- Special case localeconv when NUMERIC, MONETARY must be C When both these categories are C, we don't need to call localeconv(), which can be expensive because it may mean toggling locales. Instead the answers are well defined by the C Standard. This adds a function that returns those, and #ifdef's to locale.c to compile to use the special function instead of the more general one if both categories must be C. Commit: 3529fa5568fd3857cafd21db053f796dddba0a4c https://github.com/Perl/perl5/commit/3529fa5568fd3857cafd21db053f796dddba0a4c Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- locale.c: Move some code When called with just a single item, we only need a single call to the populating function, so move this code ahead of the 2nd call. This also clarifies the commends. Commit: f93711731b27d4f816053d0d281c04cc6bfdb1eb https://github.com/Perl/perl5/commit/f93711731b27d4f816053d0d281c04cc6bfdb1eb Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- Supported MSCV no longer has a broken localeconv() We no longer support prior to VS 2015, at which point a bug was fixed. Commit: da30eaf90d7c064a0babf08f168e608b0b25ddbc https://github.com/Perl/perl5/commit/da30eaf90d7c064a0babf08f168e608b0b25ddbc Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M perl.h Log Message: ----------- MingW with UCRT doesn't have the broken localeconv() Commit: f1a54c433d04d499ae64ec0afa325f443e0c3ba3 https://github.com/Perl/perl5/commit/f1a54c433d04d499ae64ec0afa325f443e0c3ba3 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- mismatched ctype Commit: beaaaafa3246bc4904c85d74f83afc8e8a2820b1 https://github.com/Perl/perl5/commit/beaaaafa3246bc4904c85d74f83afc8e8a2820b1 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c Log Message: ----------- foo Commit: 616133829415f4ecafac6945ea645a3ee5cf3d51 https://github.com/Perl/perl5/commit/616133829415f4ecafac6945ea645a3ee5cf3d51 Author: Karl Williamson <k...@cpan.org> Date: 2023-11-17 (Fri, 17 Nov 2023) Changed paths: M locale.c M makedef.pl M sv.c M t/test.pl M win32/GNUmakefile Log Message: ----------- bar Compare: https://github.com/Perl/perl5/compare/232c965dcd3e...616133829415