Branch: refs/heads/smoke-me/khw-env Home: https://github.com/Perl/perl5 Commit: e0831f74d99579a0af38c915caaeee8fd06eb492 https://github.com/Perl/perl5/commit/e0831f74d99579a0af38c915caaeee8fd06eb492 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024)
Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t: Fixes #21697. On some platforms, a locale name is specified in the code page (or code set) that applies to it, rather than plain ASCII. Windows, and hence MingW, is the prime example. The locale name for a particular Turkish variety found in MingW is "Turkish_T?????.1254" where the question marks represent different characters that have meaning in the 1254 code page, but would look like mojibake if I had reproduced their actual values here. When doing a setlocale() here, if the current code page is incompatible with the new one, it will fail; if compatible it will succeed. On my box running MingW, locales are tried out by this test file in alphabetical order, and the one before this Turkish happens to be Thai, with a code page of 874. Apparently 1254 is not compatible with 874, so switching directly from Thai to Turkish fails. The solution is to switch into a neutral code page before switching into one being trialed. "C" works in this case, and I suspect in all others. Commit: d61f32415444dd1b4064ba8ad5a92eab19c3936f https://github.com/Perl/perl5/commit/d61f32415444dd1b4064ba8ad5a92eab19c3936f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M charclass_invlists.h M lib/unicore/Makefile M lib/unicore/mktables M lib/unicore/uni_keywords.pl M regcharclass.h M uni_keywords.h Log Message: ----------- mktables more verbose Commit: f3a7ba0b2716049ac3fd4cb873e88093e612031f https://github.com/Perl/perl5/commit/f3a7ba0b2716049ac3fd4cb873e88093e612031f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm Log Message: ----------- BlackBox dont use rare scripts Commit: 93ceb2f9b5a18138e8a655a176e3612cbfb94a47 https://github.com/Perl/perl5/commit/93ceb2f9b5a18138e8a655a176e3612cbfb94a47 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/harness Log Message: ----------- XXX t/harness temp tweaks Commit: b4da5df919feae3546e9d6bbed072fb93ca8d1cc https://github.com/Perl/perl5/commit/b4da5df919feae3546e9d6bbed072fb93ca8d1cc Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/harness Log Message: ----------- XXX skip croak.t under sanitizer Commit: 7027b1b846e014ca515f9b16f4c4a58814abcf9b https://github.com/Perl/perl5/commit/7027b1b846e014ca515f9b16f4c4a58814abcf9b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- skip bincompat.t Commit: 5ea543706bf615a8d54ac991c56255f13b46356b https://github.com/Perl/perl5/commit/5ea543706bf615a8d54ac991c56255f13b46356b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/porting/bincompat.t Log Message: ----------- Revert "skip bincompat.t" This reverts commit 559abf36660fef3e16d1cd33dc5aa6ca2202b88c. Commit: 19596fe48f650094df25b1a7c7dfe1eccfd0e950 https://github.com/Perl/perl5/commit/19596fe48f650094df25b1a7c7dfe1eccfd0e950 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/TEST Log Message: ----------- Skip cpan testing message Commit: 9a71b6d6beff07a52d43cdf19739e788779deaae https://github.com/Perl/perl5/commit/9a71b6d6beff07a52d43cdf19739e788779deaae Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- runconfigure: only usequery with that directory Commit: d5c705a54a37e4ceee8c4d6e06ea2917c0c2573d https://github.com/Perl/perl5/commit/d5c705a54a37e4ceee8c4d6e06ea2917c0c2573d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/TEST Log Message: ----------- Also skip non-thread dist testing Commit: 5303b6be523424d4974b90c7cb21aa48f6493798 https://github.com/Perl/perl5/commit/5303b6be523424d4974b90c7cb21aa48f6493798 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M cpan/Archive-Tar/t/02_methods.t Log Message: ----------- XXX skip Archive-Tar because of symlinks Commit: 9fd9f8001b9d0a8748059ecdcd9a431fb59afb5e https://github.com/Perl/perl5/commit/9fd9f8001b9d0a8748059ecdcd9a431fb59afb5e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t because of sym links Commit: 84e1c08b1b48e487d8741d6ca813fc99421e98df https://github.com/Perl/perl5/commit/84e1c08b1b48e487d8741d6ca813fc99421e98df Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 73d8d867626f77ccb281260c8b861b93d95ba007 https://github.com/Perl/perl5/commit/73d8d867626f77ccb281260c8b861b93d95ba007 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M dist/Tie-File/t/29a_upcopy.t Log Message: ----------- up timeout for dist/Tie-File/t/29a_upcopy.t Commit: 0708eb9d40b972c83fae120aac8d7e8590ff4351 https://github.com/Perl/perl5/commit/0708eb9d40b972c83fae120aac8d7e8590ff4351 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: af9a20c63433e045321b620aa59ffa5444601fe6 https://github.com/Perl/perl5/commit/af9a20c63433e045321b620aa59ffa5444601fe6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- run/locale.t: more debug Commit: 58b2209e9c92e518e98568dd2d232e4e3e1b0142 https://github.com/Perl/perl5/commit/58b2209e9c92e518e98568dd2d232e4e3e1b0142 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: ----------- Make 24 uniprops.t tests Commit: e080ed868d481c7229f86c9c3d30525a43336935 https://github.com/Perl/perl5/commit/e080ed868d481c7229f86c9c3d30525a43336935 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- XXX temp to test broken lconv on non-Windows Commit: f53afd64fb8df9e3286951a346174220857f573d https://github.com/Perl/perl5/commit/f53afd64fb8df9e3286951a346174220857f573d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- XXX run/locale.t: maybe f move test Commit: 1e35a786c07d14837e97b2655b4ff99d43d46f69 https://github.com/Perl/perl5/commit/1e35a786c07d14837e97b2655b4ff99d43d46f69 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 2f2f424e4d9d6ce8f528b0727cdc27da49341625 https://github.com/Perl/perl5/commit/2f2f424e4d9d6ce8f528b0727cdc27da49341625 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/porting/cmp_version.t Log Message: ----------- XXX skip cmp_version.t prob. due to 5.38 tag issue Commit: 2634189443e690b302d5bb9cab81fd1b79993c9c https://github.com/Perl/perl5/commit/2634189443e690b302d5bb9cab81fd1b79993c9c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: e849073ade75c4cfd00687bfdc0fde090e9cbb50 https://github.com/Perl/perl5/commit/e849073ade75c4cfd00687bfdc0fde090e9cbb50 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- XXX temporary: Allow undef LC_ALL Commit: 158b6db58a2ea0d57df2f22e8d920d7634d59a12 https://github.com/Perl/perl5/commit/158b6db58a2ea0d57df2f22e8d920d7634d59a12 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- perl.h: Fake up win32 compile a bit Commit: 483a633bffefa0fddf5f6612992a64a8dde92c87 https://github.com/Perl/perl5/commit/483a633bffefa0fddf5f6612992a64a8dde92c87 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 82d938eabd92dfbcf30812f29f50664d96db6cd6 https://github.com/Perl/perl5/commit/82d938eabd92dfbcf30812f29f50664d96db6cd6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 8bc1afe083ddb0463f4128435984daa1c4b0a8ed https://github.com/Perl/perl5/commit/8bc1afe083ddb0463f4128435984daa1c4b0a8ed Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 8dd14d10d1cad34197f015994ffc3f5d9076ffca https://github.com/Perl/perl5/commit/8dd14d10d1cad34197f015994ffc3f5d9076ffca Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 02caf488613e6134eddb00e1eeab6be5f83faf72 https://github.com/Perl/perl5/commit/02caf488613e6134eddb00e1eeab6be5f83faf72 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M proto.h M util.c Log Message: ----------- XXX memlog Commit: d803de8b1630e7914ddf52878c545591362f7ee3 https://github.com/Perl/perl5/commit/d803de8b1630e7914ddf52878c545591362f7ee3 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h M t/run/switchDx.t Log Message: ----------- debug thread Commit: 6dc629c33277d63e4e6b380de0de5093537ab751 https://github.com/Perl/perl5/commit/6dc629c33277d63e4e6b380de0de5093537ab751 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- threads.xs DEBUG_U Commit: 65204ff123f68e8c42f02b215048bec701dfbcfb https://github.com/Perl/perl5/commit/65204ff123f68e8c42f02b215048bec701dfbcfb Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale.t Log Message: ----------- XXX temp: lib/locale.t: debug Commit: 8628777cdf4a8ee4cedd067a1327309aa632e1d0 https://github.com/Perl/perl5/commit/8628777cdf4a8ee4cedd067a1327309aa632e1d0 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t FILE debug Commit: 34c1d8c85ee34021ead768ecf6068f1386fd6053 https://github.com/Perl/perl5/commit/34c1d8c85ee34021ead768ecf6068f1386fd6053 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale.t Log Message: ----------- lib/locale.t Commit: 0c34600cea45c6313cc0748b74bb3ae5a9083441 https://github.com/Perl/perl5/commit/0c34600cea45c6313cc0748b74bb3ae5a9083441 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h: Debugging mutex lock' Commit: 8ad8fd8b1f92c01484223df9989d43684404751b https://github.com/Perl/perl5/commit/8ad8fd8b1f92c01484223df9989d43684404751b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 431d2bfc767fcc1312a5c7ba75591025bfe7d4d7 https://github.com/Perl/perl5/commit/431d2bfc767fcc1312a5c7ba75591025bfe7d4d7 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M cpan/version/t/07locale.t Log Message: ----------- cpan/version/07locale.t: drop, bug have to recompute md5 Commit: 498478fdbd5343f95e54cd85ee4f6dd7b436ebaf https://github.com/Perl/perl5/commit/498478fdbd5343f95e54cd85ee4f6dd7b436ebaf Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/porting/customized.dat Log Message: ----------- customized.dat Commit: c9015f0f73e6675e8c4b7a472dd74adc10be0998 https://github.com/Perl/perl5/commit/c9015f0f73e6675e8c4b7a472dd74adc10be0998 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: XXX Debug Commit: 95ab7aded13ed128ce5f9fa70676a0546bc0e9f5 https://github.com/Perl/perl5/commit/95ab7aded13ed128ce5f9fa70676a0546bc0e9f5 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- S_querylocale_2008_i: Add entry assertion Commit: 086449cceb61f4b49eb6b9ff2920994d2e4f95df https://github.com/Perl/perl5/commit/086449cceb61f4b49eb6b9ff2920994d2e4f95df Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- S_bool_setlocale_i: Add entry assertion Commit: 32fd92d1826895b1b4485d612912b9603d6b27bd https://github.com/Perl/perl5/commit/32fd92d1826895b1b4485d612912b9603d6b27bd Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- savepv if threaded, unused I think Commit: 8b0bb2b544eafd9969df7a0e3a544f87e19ebe05 https://github.com/Perl/perl5/commit/8b0bb2b544eafd9969df7a0e3a544f87e19ebe05 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin hints querylocale race in earlier darwins? Commit: a0b2efd552ee18aa36af1b78f94152e7e321f99f https://github.com/Perl/perl5/commit/a0b2efd552ee18aa36af1b78f94152e7e321f99f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pp.c Log Message: ----------- pp_study: Add memory use debugging Commit: cf4ec77fed39b2de41f769883e42d6ece7ff5ef2 https://github.com/Perl/perl5/commit/cf4ec77fed39b2de41f769883e42d6ece7ff5ef2 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pp.c Log Message: ----------- Revert "pp_study: Add memory use debugging" Commit: 66f7bde2d1a6653b34df1480754e6fe176769424 https://github.com/Perl/perl5/commit/66f7bde2d1a6653b34df1480754e6fe176769424 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M hints/darwin.sh Log Message: ----------- darwin Commit: 6b9f1d66534b6917b351e81da3f5a45bb623c6e9 https://github.com/Perl/perl5/commit/6b9f1d66534b6917b351e81da3f5a45bb623c6e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 1f75fd02a0e5dc70a84a343aa7a3526194ca4935 https://github.com/Perl/perl5/commit/1f75fd02a0e5dc70a84a343aa7a3526194ca4935 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: debug Commit: 3c9956015300445e9a8e1f80acc61a9a883c6cf4 https://github.com/Perl/perl5/commit/3c9956015300445e9a8e1f80acc61a9a883c6cf4 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: add a commented out yield Commit: 4a999138e86d19361dd834392266cae83949466c https://github.com/Perl/perl5/commit/4a999138e86d19361dd834392266cae83949466c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: debugging Commit: 6bc4f08a1824fc109b6a1c8d97d05bfeb7fd65f3 https://github.com/Perl/perl5/commit/6bc4f08a1824fc109b6a1c8d97d05bfeb7fd65f3 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: fd27ded4fa70e155ab7d5fbcadbf8a9da83f9c33 https://github.com/Perl/perl5/commit/fd27ded4fa70e155ab7d5fbcadbf8a9da83f9c33 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 5135776d40fe55cfb5b6b2abcb3e3bba4b338f98 https://github.com/Perl/perl5/commit/5135776d40fe55cfb5b6b2abcb3e3bba4b338f98 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: d6a3cbd0ea7c88dacc9bc0740cf58ecbac20ddbe https://github.com/Perl/perl5/commit/d6a3cbd0ea7c88dacc9bc0740cf58ecbac20ddbe Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M thread.h Log Message: ----------- thread.h: White space only Indent some nested preproccessor defines Commit: 181da05df81a895397349fe9bfeeb302468551e1 https://github.com/Perl/perl5/commit/181da05df81a895397349fe9bfeeb302468551e1 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 9c2174466a60675827de1dbf5d74633c04a392d4 https://github.com/Perl/perl5/commit/9c2174466a60675827de1dbf5d74633c04a392d4 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- XXX Time::Piece strftime Commit: bbadfeb176c5c97f8d97d8365a9ad153719852be https://github.com/Perl/perl5/commit/bbadfeb176c5c97f8d97d8365a9ad153719852be Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M cpan/Time-Piece/Piece.xs Log Message: ----------- Time-Piece: notes to myself Commit: c866301d548cc31f10de6264c4e87e1b67cb3b5e https://github.com/Perl/perl5/commit/c866301d548cc31f10de6264c4e87e1b67cb3b5e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M util.c M win32/perlhost.h Log Message: ----------- XXX Win32 mem log Commit: 24757209f5f3d2bf266fd83e06ad326e65fd42cf https://github.com/Perl/perl5/commit/24757209f5f3d2bf266fd83e06ad326e65fd42cf Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M util.c Log Message: ----------- XXX util add thread to mem_log Commit: b6455b1f0c31d4652c70ba28b9ea51b0ba313c36 https://github.com/Perl/perl5/commit/b6455b1f0c31d4652c70ba28b9ea51b0ba313c36 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Debug wrap wset Commit: fb5cca9b6452fe9aaa2020fc25481f09c0fccd37 https://github.com/Perl/perl5/commit/fb5cca9b6452fe9aaa2020fc25481f09c0fccd37 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pod/perlhacktips.pod Log Message: ----------- XXX incomplete perlhacktips: Commit: 4f0495af22156e77600c424ed496af5bf1eb6e48 https://github.com/Perl/perl5/commit/4f0495af22156e77600c424ed496af5bf1eb6e48 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M iperlsys.h Log Message: ----------- iperlsys.h: TODO need to look at adding mutexes Commit: 092b87b5e4d652a74c5e184215578418c907a976 https://github.com/Perl/perl5/commit/092b87b5e4d652a74c5e184215578418c907a976 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M regen/reentr.pl Log Message: ----------- reentr.pl: XXX about needing mutex Commit: eced63968926ed933d4d071c3d1323275476e5ea https://github.com/Perl/perl5/commit/eced63968926ed933d4d071c3d1323275476e5ea Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M dist/ExtUtils-ParseXS/lib/perlxs.pod M pod/perlembed.pod M pod/perlhacktips.pod M pod/perllocale.pod M t/porting/known_pod_issues.dat Log Message: ----------- perlxs Commit: 4ae719a53f9afda6639ac71bde640e86cc6513ae https://github.com/Perl/perl5/commit/4ae719a53f9afda6639ac71bde640e86cc6513ae Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pod/perlmod.pod Log Message: ----------- perlmod Commit: e2553b89e988c74c89ef5839416bb4bfbb314d15 https://github.com/Perl/perl5/commit/e2553b89e988c74c89ef5839416bb4bfbb314d15 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pod/perllocale.pod Log Message: ----------- perllocale Xxx start of changes Commit: 2a2d0eb5fd0227b692706f7c3e6a9549a90fb6e9 https://github.com/Perl/perl5/commit/2a2d0eb5fd0227b692706f7c3e6a9549a90fb6e9 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M win32/config_H.gc M win32/config_h.PL M win32/config_sh.PL Log Message: ----------- XXX config Commit: 8b153d3ffe920a06a7c511287bef1503a85b30e8 https://github.com/Perl/perl5/commit/8b153d3ffe920a06a7c511287bef1503a85b30e8 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pod/perlembed.pod Log Message: ----------- f perlembed Commit: 1c19e162aac54368a4aa53102a851dfa7b87d216 https://github.com/Perl/perl5/commit/1c19e162aac54368a4aa53102a851dfa7b87d216 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M intrpvar.h M locale.c M perl.h Log Message: ----------- Fixup FAKE_MINGW This is used (by me) to partially emulate MingW on a *nix platform. It was passing all its tests, but I discovered that I had the wrong #if which was hence not enabling crucial parts of the emulation. Commit: a1bd15604a1bd26037dc1f00a537f8e5d2f59491 https://github.com/Perl/perl5/commit/a1bd15604a1bd26037dc1f00a537f8e5d2f59491 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- locale_threads: start of using platform locales Commit: d7c197b57386daa62f9c5a061cb3bfcf968165a5 https://github.com/Perl/perl5/commit/d7c197b57386daa62f9c5a061cb3bfcf968165a5 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- Revert "locale_threads: start of using platform locales" This reverts commit a7a8dea3aabb81a05aacaf3a26c49854a5854111. Commit: b7bc940ee5b3844096ac81e275fcfb829f1eab0c https://github.com/Perl/perl5/commit/b7bc940ee5b3844096ac81e275fcfb829f1eab0c Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c M perl.c M sv.c Log Message: ----------- define numeric values to be C when no USE_NUMERIC Commit: ceba2fe31c6178e9ff3e860135abfe0389c5909d https://github.com/Perl/perl5/commit/ceba2fe31c6178e9ff3e860135abfe0389c5909d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: fa0eacfd8da32d11975fbb36998c7c242b1b7ede https://github.com/Perl/perl5/commit/fa0eacfd8da32d11975fbb36998c7c242b1b7ede Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Add #define to separate label from declaration This is designed to be mostly self-documenting. Commit: 23be583d4796a22e3d189d1f86a5d96a26ec0b6e https://github.com/Perl/perl5/commit/23be583d4796a22e3d189d1f86a5d96a26ec0b6e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- rulereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Commit: 715aac366832b33ba10f2341dca3179aa5ba7635 https://github.com/Perl/perl5/commit/715aac366832b33ba10f2341dca3179aa5ba7635 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 9b170a8bbba10a9308e43483a8919ee289a2b3e2 https://github.com/Perl/perl5/commit/9b170a8bbba10a9308e43483a8919ee289a2b3e2 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Silence compiler warning This tightens when this function is compiled to the actual Configurations it is needed in. Commit: 6232dd591788d4c6b187ade8d79ff4a85b6e4085 https://github.com/Perl/perl5/commit/6232dd591788d4c6b187ade8d79ff4a85b6e4085 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- C_thous better ifdef Commit: 3137ec87d12d801f3681a1be46a1b4225c504561 https://github.com/Perl/perl5/commit/3137ec87d12d801f3681a1be46a1b4225c504561 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M ext/POSIX/t/posix.t M ext/POSIX/t/time.t M ext/XS-APItest/t/locale.t M lib/locale.t M lib/locale_threads.t Log Message: ----------- skip tests if no strftime Commit: 8aae065fffca702eb1344db463cdc5e87b1bf6dc https://github.com/Perl/perl5/commit/8aae065fffca702eb1344db463cdc5e87b1bf6dc Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/loc_tools.pl Log Message: ----------- loctools use if dumper Commit: 18283d0b92a5a0263268252440ba95df9ab7c262 https://github.com/Perl/perl5/commit/18283d0b92a5a0263268252440ba95df9ab7c262 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M ext/POSIX/lib/POSIX.pod Log Message: ----------- start of pod for localeconv Commit: 71cac549751e2f9f7fc1b9266f03d44239cc1981 https://github.com/Perl/perl5/commit/71cac549751e2f9f7fc1b9266f03d44239cc1981 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Add struct definition as a fallback If we ever encountered a platform that didn't have localeconv(), nor its structure definition, this could be used to get things to work. Commit: 23d17da5cf62dea636a14bdebeec2c63c6de4743 https://github.com/Perl/perl5/commit/23d17da5cf62dea636a14bdebeec2c63c6de4743 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- debug populate localeconv Commit: 194bc1b2824cba2be27b4b2c72e5d8f594c14e03 https://github.com/Perl/perl5/commit/194bc1b2824cba2be27b4b2c72e5d8f594c14e03 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M dist/threads/threads.xs Log Message: ----------- debug thread xs Commit: 869b7fbc23b1e1358317065cf44dd876c70510ce https://github.com/Perl/perl5/commit/869b7fbc23b1e1358317065cf44dd876c70510ce Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- lib/locale_threads.t: Add debugging info Commit: c954166f719718b46fa1acc86ac01f71c1ac63d4 https://github.com/Perl/perl5/commit/c954166f719718b46fa1acc86ac01f71c1ac63d4 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M proto.h M sv.c Log Message: ----------- Add newSVpvz() to create a sized SvPV. There's no current trivial method to create a non-zero length SV that will hold a PV. Commit: c9bd6907b6c7aec675f46d55123085d981f1ea46 https://github.com/Perl/perl5/commit/c9bd6907b6c7aec675f46d55123085d981f1ea46 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Call newSVpvz() Commit: 5d0e6bc424cdd7aada9c5ccc945dc70a9fb1d89e https://github.com/Perl/perl5/commit/5d0e6bc424cdd7aada9c5ccc945dc70a9fb1d89e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Shorten critical section times Toggling a category's locale has a cost, so if there are a bunch of operations that are going to be done in a row in a particular toggled state, it makes sense to toggle once, do them all, then toggle back. Most of the toggling in this file is short term, but there are a few places where it is advantageous to toggle once. But on some Configurations, toggling creates a critical, uninterruptible section. For these, keeping the amount of time spent in such a state without letting other threads execute needs to be as short as feasible, and this outweighs the cost of toggling and retoggling. This commit balances these competing needs by creating new macros for those cases where we want to have an overarching toggle. Those macros become no-ops when the toggling creates an uninterruptible section. Thus, when there is a cost to remaining toggled for longer periods, those macros don't do anything, and the macros that are at the point of the actual need are the ones that do the toggling/retoggling. In the Configurations where there isn't such a cost, the overarching macros kick in, and the shorter-term ones find that the state is already toggled, and they return without doing anything. Commit: 274f023ba855e099ea11c20661d9a17cfe74cda5 https://github.com/Perl/perl5/commit/274f023ba855e099ea11c20661d9a17cfe74cda5 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- Add DEBUG_SETLOCALE_INCONSISTENCIES Commit: b81eeb3d8307fabaf8f0ecc92cef2c6e092c210a https://github.com/Perl/perl5/commit/b81eeb3d8307fabaf8f0ecc92cef2c6e092c210a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- Enable DEBUG_SETLOCALE_INCONSISTENCIES Commit: a48a9727c4b0d683cadad9c667d08ac55bd79fb1 https://github.com/Perl/perl5/commit/a48a9727c4b0d683cadad9c667d08ac55bd79fb1 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Make numeric standard inconsistent Commit: e6a2c2a6f8f6b37ef77dfe85a47de7a9b5532bf1 https://github.com/Perl/perl5/commit/e6a2c2a6f8f6b37ef77dfe85a47de7a9b5532bf1 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) 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: 529f5570db1b1828c9e0eaadf45f9def447b04ff https://github.com/Perl/perl5/commit/529f5570db1b1828c9e0eaadf45f9def447b04ff Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M makedef.pl M perl.h Log Message: ----------- Don't do thread-safe locales emulation on mingw MingW when compiled with the Universal C runtime (UCRT) is thread-safe with respect to locales, just as VS 2015 and later MSVCRT compilations are. However, versions not using UCRT cannot be compiled to emulate thread-safe locale. I'm pretty sure this is due to a bug in the libc strftime() function, having spent a bunch of hours working on this. It often fails lib/locale_threads.t when using the emulation, but not always. The failure is always in strftime(). What made me think it could be perl is another characteristic of the failures. lib/locale_threads.t works by, in each thread, setting each available locale category to a locale, different from any other category in that thread, and as different as possible from the locale for the corresponding category in any other thread. For example thread 0 might have LC_CTYPE set to locale X, LC_NUMERIC to Y, LC_TIME to Z, etc. Thread 1 would use a locale for LC_CTYPE, as different from X as possible, meaning executing the same operation on thread 0 and thread 1 would yield different expected results. (It goes to some lengths to calculate the biggest distance in the results.) Similarly LC_NUMERIC would have something almost completely different from Y; and so on. Then each thread executes a batch of iterations. Each iteration runs all the operations I could find that perl uses that apply to LC_TYPE, and all the ones that apply to each of the other categories. And verifies that all the results are as expected. Simultaneously, the other threads are executing their batch. It is verifying that there is no bleed-through from one thread to another. If the threads all have the same results as the other threads, we couldn't detect if there is real bleed-through or not. This is solved by making the results for each category as different as possible from any other thread currently executing. However, this isn't good enough. Every so many iterations, each thread changes to use a new set of locales. This verifies that the locales can be changed in a thread without that bleeding through to other threads. And thread 0 is special. It harvests the other threads as they finish, and keeps going for a while. This is to catch bugs in thread completion, of which we've had a few. MingW's failures all occur, when they occur, on the first iteration following a switch to a new set of locales. That is suspiciously like it is a race condition in cleaning up from the previous setting. But it isn't the first test of the set of the first iteration of the next set. It can be the 10th or so test. I added enough debugging statements to convince me that it isn't perl. This is the failing code in locale.c: STRFTIME_LOCK; int len = strftime(buf, bufsize, fmt, mytm); STRFTIME_UNLOCK; The returned 'buf' is not always correct. T The LOCK/UNLOCK macros on MingW with thread-safe emulation enabled, call EnterCriticalSection(), and set the locales for the categories that affect strftime() to the proper locale. Just to be sure. I tested setting LC_ALL to the correct value. While in its uninterruptible (by other locale handling code anyway) section, strftime() fills buf with the result for the current locale (which STRFTIME_LOCK has set). I added print statements within the critical section thusly STRFTIME_LOCK; DEBUG_U(PerlIO_printf(Perl_debug_log, "calling strftime(%s), LC_ALL=%s\n", fmt, setlocale(LC_ALL, NULL))); int len = strftime(buf, bufsize, fmt, mytm); DEBUG_U(PerlIO_printf(Perl_debug_log, "return=%s, LC_ALL=%s\n", buf, setlocale(LC_ALL, NULL))); STRFTIME_UNLOCK; On this platform, setlocale() expands to _wsetlocale(), a Windows libc call. Here's what they showed for one failure. calling strftime(%b), LC_ALL=Hungarian_Hungary.1250 return=marc., LC_ALL=Hungarian_Hungary.1250 The 'a' in the Hungarian for March is supposed to be a U+00E1, with an acute accent, so this is wrong. strftime() also is passed a pointer to a struct tm, which is filled in with various integers which indicate in this case which month the %b is supposed to return. That it is returning something very much like márch indicates those integers are correct. Not shown in the example above are the other prints I added to verify that we are indeed in a critical section. I didn't see a way to actually test for this via a libc call, but one could use strace and wade through the output. But there are print statements that print out immediately before entering a critical section, and immediately after leaving it. I verified that those prints indicate this code is in a critical section. I note that this box has actually not very many locales, so that the distance between the results of various threads isn't all that large. Pretty much all the locales are CP 1250, 1251, 1252, and 1257, and no UTF-8 ones, so all locales are single byte. None of them map \XE1 into plain 'a', which is what we are seeing returned, so the cleanup theory seems wrong. Sometimes the return is '?' or a series of them, indicating that the returned character is mojibake. None of the locales I saw had 'marc\.' as a possible return. It appears only here in the entire trace of all threads. This makes it again less likely that it is a cleanup issue. But where did it come from?. I don't know. The value for the C locale is 'Mar', so it didn't come from there. The localeconv() function is also broken in this Configuration. We long ago figured out a workaround for that. I tried that same workaround for strftime(), and it didn't help. Commit: 4c72efccadad2c4742214ae762a47fad14338bfb https://github.com/Perl/perl5/commit/4c72efccadad2c4742214ae762a47fad14338bfb Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- DEBUG Lv to U Commit: a516d8cb38598f0f214ce394b57c39c23a65e85b https://github.com/Perl/perl5/commit/a516d8cb38598f0f214ce394b57c39c23a65e85b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- extra debug Commit: 9b622e18c184d03cf2ae12e807bf836c70382c8a https://github.com/Perl/perl5/commit/9b622e18c184d03cf2ae12e807bf836c70382c8a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- more emul locks Commit: 5da49c3112c88e934c26e4df4a522a21a132572d https://github.com/Perl/perl5/commit/5da49c3112c88e934c26e4df4a522a21a132572d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "more emul locks" This reverts commit 4733a1674423ee47b33eb0ee1882e1bf39faa1a6. Commit: 63248d202b014fee08f377f9e6d9a4d69b0109be https://github.com/Perl/perl5/commit/63248d202b014fee08f377f9e6d9a4d69b0109be Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- langinfo lock Commit: 259f3ff7f34b8bf0a60e045f384f85a2df69d1e0 https://github.com/Perl/perl5/commit/259f3ff7f34b8bf0a60e045f384f85a2df69d1e0 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "langinfo lock" This reverts commit acaff35d7ed83830fb36c149aafede5cdf400061. Commit: 46fc041bcf858df3f2ec46c80c4a661159eacb76 https://github.com/Perl/perl5/commit/46fc041bcf858df3f2ec46c80c4a661159eacb76 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- lock mask Commit: 5e0428ad1f3dfa90fe0c9685b713977cd6159b3a https://github.com/Perl/perl5/commit/5e0428ad1f3dfa90fe0c9685b713977cd6159b3a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "lock mask" This reverts commit 3fd528c9d5d5b9c05dc1c697e61570b81811fb95. Commit: a829e064203b3ad665fec53596707e08af4807f3 https://github.com/Perl/perl5/commit/a829e064203b3ad665fec53596707e08af4807f3 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Maybe comment' Commit: 718b8d9734b15267a70c53f29dfc93fe1c16f2d2 https://github.com/Perl/perl5/commit/718b8d9734b15267a70c53f29dfc93fe1c16f2d2 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- XXX perl.h maybe drop Commit: 8d0d628f322b0431a1300559c939a0bff0b4228a https://github.com/Perl/perl5/commit/8d0d628f322b0431a1300559c939a0bff0b4228a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M lib/locale_threads.t Log Message: ----------- Revert "locale_threads.t: Skip on OpenBSD and DragonFly threaded builds" This reverts commit 1d74e8214dd53cf0fa9e8c5aab3e6187685eadcd, as they have been modified Commit: f06ebf276e7c9ce9476df93346428f163d7f0265 https://github.com/Perl/perl5/commit/f06ebf276e7c9ce9476df93346428f163d7f0265 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Debug uselocale Commit: 6d2e7db9788a7f7acbfe1f27939e822273240213 https://github.com/Perl/perl5/commit/6d2e7db9788a7f7acbfe1f27939e822273240213 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M pp.c Log Message: ----------- pp_study: hook Commit: be187bc86d02faff0ad0a074168103e119a1a0f6 https://github.com/Perl/perl5/commit/be187bc86d02faff0ad0a074168103e119a1a0f6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M sv.c Log Message: ----------- sv.c need to check for pv in sv in sv_setpvf Commit: 2c4dfaa6d3eca5a5852e48deaa28a2d66c6bd1f3 https://github.com/Perl/perl5/commit/2c4dfaa6d3eca5a5852e48deaa28a2d66c6bd1f3 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.c Log Message: ----------- f Commit: 4e87da457125da79a53c34bcf5779f6cd0b9c385 https://github.com/Perl/perl5/commit/4e87da457125da79a53c34bcf5779f6cd0b9c385 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M sv.c Log Message: ----------- sv Commit: 5ebd0b3294f9099b4d1a91920cd99e780e256d80 https://github.com/Perl/perl5/commit/5ebd0b3294f9099b4d1a91920cd99e780e256d80 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- immediate use Commit: 09ff8ca70443bc382916ae07d375192b565db313 https://github.com/Perl/perl5/commit/09ff8ca70443bc382916ae07d375192b565db313 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- more immed Commit: d4c0c77513d95350a3925610aed6a5cd89527df6 https://github.com/Perl/perl5/commit/d4c0c77513d95350a3925610aed6a5cd89527df6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- Revert "more immed" This reverts commit 09ff8ca70443bc382916ae07d375192b565db313. Commit: 70e4490cf3527977eb5d21eb8bf7c5f6340a79c4 https://github.com/Perl/perl5/commit/70e4490cf3527977eb5d21eb8bf7c5f6340a79c4 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- Revert "immediate use" This reverts commit 5ebd0b3294f9099b4d1a91920cd99e780e256d80. Commit: 16c80ced4d802304bf7862ff699a1010bd898796 https://github.com/Perl/perl5/commit/16c80ced4d802304bf7862ff699a1010bd898796 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Comments, white space Commit: 608257888e3652866cc5a3c332ed9013123ecc94 https://github.com/Perl/perl5/commit/608257888e3652866cc5a3c332ed9013123ecc94 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- add is_cur_locale_utf8 Commit: e8f29a53cab24677aa9dd6b2f2326396d2fef46e https://github.com/Perl/perl5/commit/e8f29a53cab24677aa9dd6b2f2326396d2fef46e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M embed.fnc M embed.h M locale.c M proto.h Log Message: ----------- locale.c: Don't compile thread functions unless threaded These functions are called only from threads.xs under USE_THREADS; omit them otherwise. Commit: 4bd0d276e9168a12928709941ea8cab432a24a8f https://github.com/Perl/perl5/commit/4bd0d276e9168a12928709941ea8cab432a24a8f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- MULT Commit: a991a486320767c4d546ecd19eb2f3ca46aa4675 https://github.com/Perl/perl5/commit/a991a486320767c4d546ecd19eb2f3ca46aa4675 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Don't compile ALT_DIGITS code if not reached We know in some cases that a platform won't ever execute the code to compute ALT_DIGITS. Windows and OpenBSD are two examples. Windows because it doesn't support the strftime() %O modifier; OpenBSD because the LC_TIME locale can only ever be C, which has no ALT_DIGITS. In such cases, we can skip compiling the ALT_DIGIT code. Commit: fde6763f97be3ad38b3afa288bf6dfaae0de71aa https://github.com/Perl/perl5/commit/fde6763f97be3ad38b3afa288bf6dfaae0de71aa Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c M perl.h Log Message: ----------- final Commit: 7458f5c29778fc1b9269f7844621d91417cdc78d https://github.com/Perl/perl5/commit/7458f5c29778fc1b9269f7844621d91417cdc78d Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- bash run/locale.t fix Commit: 0f7e4718776b1efad5206ca7e42b2e8332e5dcaa https://github.com/Perl/perl5/commit/0f7e4718776b1efad5206ca7e42b2e8332e5dcaa Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Change var name and hoist to larger scope The old name was somewhat misleading Commit: fe6df7f839ae925b25e98aa330a225788ec1ea3a https://github.com/Perl/perl5/commit/fe6df7f839ae925b25e98aa330a225788ec1ea3a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Extract code into a sub This is in preparation for it to be called from another place Commit: 6242fd08fb26b3e915100d2fe29bb1d8005c745e https://github.com/Perl/perl5/commit/6242fd08fb26b3e915100d2fe29bb1d8005c745e Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Save sub return in an array This is in preparation for it to be used again. Commit: 4f797065f51ff836f8dce092cac24320b5e17d33 https://github.com/Perl/perl5/commit/4f797065f51ff836f8dce092cac24320b5e17d33 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M t/run/locale.t Log Message: ----------- t/run/locale.t: Add test This is marked TODO; the next commit will cause this test to pass. Commit: a4e94dfc9eadb44d6f9b074c4b5d96ec1d38b10b https://github.com/Perl/perl5/commit/a4e94dfc9eadb44d6f9b074c4b5d96ec1d38b10b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c M t/run/locale.t 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. Commit: d41373757e3124156913211860474963d9a43bea https://github.com/Perl/perl5/commit/d41373757e3124156913211860474963d9a43bea Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M perl.h Log Message: ----------- finish comment;: read env lock on posix setlocale lock Commit: 229910b5d2205e177ba71987b54febddb49ce0de https://github.com/Perl/perl5/commit/229910b5d2205e177ba71987b54febddb49ce0de Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M locale.c Log Message: ----------- locale.c: Don't recalculate the locale In these functions, we already know the locale, so pass it to the called function instead of NULL, so that that function won't have to recalculate it. Commit: e569db532b6ea9c2236add52c4b51e39e196d576 https://github.com/Perl/perl5/commit/e569db532b6ea9c2236add52c4b51e39e196d576 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M regen/regen_lib.pl Log Message: ----------- regen/regen_lib.pl: Stop compile time warning This suppresses the warning about negative repeat counts Commit: 9d8cbc89fa3c4c07b4d0a59df9262cf647062e2b https://github.com/Perl/perl5/commit/9d8cbc89fa3c4c07b4d0a59df9262cf647062e2b Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M regen/reentr.pl Log Message: ----------- regen/reentr.pl: Use hash instead of code conditionals Fill this hash with the buffer sizes instead of using conditionals in the code to do so. This is in preparation for more variance in the sizes, which would otherwise increase the number of conditionals Commit: 33b8385076b7536366b4955c1af32cd89532e1f6 https://github.com/Perl/perl5/commit/33b8385076b7536366b4955c1af32cd89532e1f6 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M reentr.c M regen/reentr.pl Log Message: ----------- reentr.pl: Increase strerror_r buffer size We have seen cases where a libc strerror() buffer size of 80 is not enough. See https://github.com/Perl/perl5/issues/21992. One might think our current size for strerror_r() of 256 would handle any situation, but in looking around for this, I saw that glibc bothers to document that theirs is 1024. So this commit bumps it to that. Commit: 4142b3132e9e575f900508e7d472de88dc5e66fb https://github.com/Perl/perl5/commit/4142b3132e9e575f900508e7d472de88dc5e66fb Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M regen/reentr.pl Log Message: ----------- regen/reentr.pl: Update comments Commit: e50edb77a0ab52216e5025d4247e21a46844341a https://github.com/Perl/perl5/commit/e50edb77a0ab52216e5025d4247e21a46844341a Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M reentr.c M regen/reentr.pl Log Message: ----------- regen/reentr.pl: Reserve L_cuserid bytes for getlogin_r buffer This constant is defined by POSIX to be the max size of a user name. We don't have to guess, as what was done before this commit. Commit: 3e974a3dd5448b7b86135441b86499cf8a8d93c2 https://github.com/Perl/perl5/commit/3e974a3dd5448b7b86135441b86499cf8a8d93c2 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M reentr.c M regen/reentr.pl Log Message: ----------- regen/reentr.pl: Reserve L_ctermid bytes for ttyname_r buffer This constant is defined by POSIX to be the max size of the return of ctermid(), which should be the same as for ttyname_r(). Commit: 331d50bf11975acbcc0553c3f347f8eeb90ae072 https://github.com/Perl/perl5/commit/331d50bf11975acbcc0553c3f347f8eeb90ae072 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M ext/I18N-Langinfo/Langinfo.xs M lib/locale.t M perl.h M pp_sys.c M reentr.h M regen/reentr.pl Log Message: ----------- foo Commit: 74ae0706c5ad7696febbd44fef383a894770ec3f https://github.com/Perl/perl5/commit/74ae0706c5ad7696febbd44fef383a894770ec3f Author: Karl Williamson <k...@cpan.org> Date: 2024-02-17 (Sat, 17 Feb 2024) Changed paths: M reentr.h M regen/reentr.pl Log Message: ----------- x Commit: c6fcd80dc5976cae60ff0872f56277cd26942449 https://github.com/Perl/perl5/commit/c6fcd80dc5976cae60ff0872f56277cd26942449 Author: Karl Williamson <k...@cpan.org> Date: 2024-02-18 (Sun, 18 Feb 2024) Changed paths: M ext/POSIX/POSIX.xs M lib/locale.t M locale.c M perl.c M regen/reentr.pl Log Message: ----------- bar Compare: https://github.com/Perl/perl5/compare/ca6cc1f00ae9...c6fcd80dc597 To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications